Я хотел бы знать разницу между двумя объявлениями внутри метода add(), как показано ниже.
final int c;
c = 20;
а также
final int c = 20;
Я думаю, что обе переменные являются конечными, для которых я не могу переназначать новые значения. Вот метод, который по-разному обрабатывает вышеуказанные объявления.
void add() {
final int a = 30;
final int b = 10;
final int c;
c = 20;
switch (a) {
case b + c:
System.out.println("In case b+c");
break;
default:
break;
}
}
Вышеупомянутый метод вообще не компилируется, жалуясь, что
требуется постоянное выражение, случай b+c
Если переменная c объявлена и инициализирована в одной строке, например final int c = 30;
. Оно работает.