Общий принцип, который я использую, таков: объявляйте переменную как можно позже.
Однако есть один очень полезный случай, чтобы не инициализировать переменную:
String someString;
if (/* some condition */) {
someString = "foo";
} else {
someString = "bar";
}
Поскольку someString
унифицируется при объявлении, если, скажем, в предложении else
не установлено значение, компилятор Java будет жаловаться на унифицированные значения. Это было бы не так, если бы вы сделали это:
String someString = null;
if (/* some condition */) {
someString = "foo";
} else {
// do nothing
}
Это хорошая проверка здравомыслия. Выше не ошибка компиляции, но это:
String someString;
if (/* some condition */) {
someString = "foo";
} else {
// do nothing
}