ランタイムを使用するときにJavaで文字列を初期化することの違いを知る必要があります。
例:
String declare = null;
そうでなければ:
String declare = "";
2種類の文字列宣言を宣言しました。ランタイム宣言に最適なのはどれですか。
ランタイムを使用するときにJavaで文字列を初期化することの違いを知る必要があります。
例:
String declare = null;
そうでなければ:
String declare = "";
2種類の文字列宣言を宣言しました。ランタイム宣言に最適なのはどれですか。
文字列はオブジェクトです。nullに初期化すると、初期化されていないことを認識していること、および最初に変数を使用しようとしたときに警告が表示されないことをコンパイラーに通知します。それとは別に、もちろん、nullへの参照を指しています。
ただし、文字列を空の文字列に初期化すると、次のようになります。
したがって、問題は、コード内のnullまたは空の文字列をどのように処理するかということです。それがあなたの決定を導くべきものです
最初のケースでは、オブジェクトへの「ポインタ」を作成しましたnull
(objecは作成されません)。2番目の例では、値が ""(空の文字列)のオブジェクトへの'ポインタ'です。これらはまったく異なるものです-あなたは決定する必要があります、あなたはさらなる操作のためにどれが必要ですか?
最初の例ではStringオブジェクトを作成せず、2番目の例では作成します。したがって、ステートメント:
declare.equals("some string");
最初の例ではNullPointerExceptionが生成されますが、2番目の例では生成されません。
@AljoshaBreがコメントしたように、それはあなたがそれをどうするかによります。nullに初期化するのはやや冗長です。通常、初期値はそれです。空白の初期化( "")を使用すると、予期しないパスを通過した場合にnullポインター例外を受け取ることができなくなります(コードの論理エラーがマスクされる可能性があるため、これは良い場合も悪い場合もあります)。
通常、初期値を設定することをお勧めしますが、ランダムな初期値ではなく、文字列を使用するコードにとって意味のあるものにするようにしてください。