変数を初期化しないと、コードを使用する前にコードの可能なすべての分岐に割り当てられていることをコンパイラが確認できるようにすることができます。あなたは枝の一つに変数を割り当てることを忘れた場合は、コンパイラは文句を言うでしょう
String variable;
if (conditionA) {
if (conditionB)
variable = "B";
else
variable = "A";
} else {
switch (conditionC) {
case 1:
variable = "C1";
break;
case 2:
variable = "C2";
break;
default:
variable = "CD";
break;
}
}
System.out.println(variable.length());
:たとえば、あなたは、変数を割り当て、null
てはいけません、複雑な条件を持っている場合。 null
を割り当てないことがわかっているので、変数null
を確認せずに変数を安全に使用できます。あなたが定義でnull
で変数を初期化し、コンパイラはこれをチェックすることはできません値に変数を設定することを忘れて、あなたが得ることができる場合NullPointerException
:
String variable = null;
if (conditionA)
variable = "A";
// NullPointerException if conditionA is false, not check by compiler
System.out.println(variable.length());
変数は、最終的な可能性があり、この場合、1回のみ割り当てることができます。あなたはデフォルト値で初期化したい場合は、それがすでに割り当てられているだろうと再割り当てすることはできません。
final int variable;
if (condition)
variable = 1;
else
variable = 2;
それは物事がある方法ですので、あなたならば...クラスレベルで –
のみメンバ変数を自動的に初期化されますそれらを明示的に初期化しないでください。ローカル変数は自動的には初期化されません。これらはJavaプログラミング言語の単なるルールです。 – Jesper