【发布时间】:2014-05-05 13:01:22
【问题描述】:
我想知道 add() 方法中的 2 个声明之间的区别,如下所示。
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;
}
}
上面的方法根本编译不了,报错
常量表达式需要 case b+c
如果变量 c 在一行中被声明和初始化,比如final int c = 30;。有用。
【问题讨论】:
-
看看这个en.m.wikipedia.org/wiki/Final_(Java),正如它在链接中所说的那样,当变量不会改变时使用final。你声明了变量但没有设置它的值......然后在下面你设置它的值......你不能那样做......
-
两者是等价的(我认为),因为你可以分配 c 一次。如果你想在你的开关中保持逻辑,请执行“final int d = b+c;”和你的开关中的“case d:”。
标签: java switch-statement java-7 final