Бих искал да знам разликата между 2-те декларации в метод 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;
. Работи.