[解決済み】なぜJavaにはString.Emptyがないのですか?[クローズド]
質問
文字列リテラルを入力する度に
""
の場合、文字列プールで同じStringオブジェクトが参照されます。
しかし、なぜString APIには
public static final String Empty = "";
への参照を使用することができます。
String.Empty
?
少なくとも、コンパイラは既存のStringを参照することがわかり、再利用のためにすでに作成されているかどうかをチェックする必要がなくなるので、コンパイル時間が短縮されますよね?また、個人的には、文字列リテラル、特に小さな文字列の増殖は、多くの場合、quot;code smell"であると考えています。
では、String.Emptyがないのには、何か大きな設計上の理由があったのでしょうか?それとも、単に言語開発者が私の意見に共感しなかったのでしょうか?
どうすればいい?
String.EMPTY
は12文字であり
""
は2つで、どちらも実行時にメモリ上のまったく同じインスタンスを参照することになります。私は、なぜ
String.EMPTY
の方がコンパイル時の手間が省けるので、実際は後者だと思います。
特に考慮すべきは
String
は不変なので、空の文字列を取得して、それに対して何らかの操作を行うことはできません。
StringBuilder
(または
StringBuffer
スレッドセーフにしたい場合は、それをStringに変換してください。
更新
質問に対するコメントから
このきっかけとなったのは、実は
TextBox.setText("");
あなたの適切なクラスで定数を提供することは、全く正当なことだと思います。
private static final String EMPTY_STRING = "";
そして、それをコード内で次のように参照します。
TextBox.setText(EMPTY_STRING);
この方法では、少なくとも、IDEなどでStringを埋め忘れたのではなく、空のStringが必要であることが明示されます。
関連
-
[解決済み] Javaで "UTF-8 "文字列リテラルを取得する場所はどこですか?
-
[解決済み] 未処理の例外タイプIOException」が表示されるのですが?
-
[解決済み] JavaFX 同じパッケージ内なのに「場所が必要です。
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み】なぜJavaの+=, -=, *=, /=複合代入演算子はキャスティングを必要としないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] tempとは何ですか、またjavaにおけるtempの用途は何ですか?
-
[解決済み] enumのordinalを使用するのは良い習慣ですか?
-
[解決済み] Eclipse- Dynamic Web Module 3.0 で新しいプロジェクトを作成するときに Java 1.6 以降が必要なエラーが発生する。
-
[解決済み] JOGLまたはLWJGLの既成のプロジェクト
-
[解決済み] 午前0時からの時間を秒単位で取得する方法
-
[解決済み] HTTP ステータス 500 - サーブレットクラス pkg.coreServlet のインスタンス化に失敗しました。
-
[解決済み] アクティビティに割り当てられない
-
[解決済み] SubclipseとJavaHLのインストールで頭を悩ます
-
[解決済み] 文字列の巻き方
-
[解決済み】Java Stringのインターンとは?