【发布时间】:2013-06-20 15:21:08
【问题描述】:
我不知道这是不是一个愚蠢的问题,但请尝试回答。
public static void main(String[] args){
int i=0;
final int x;
if(i==0){
x=1;
System.exit(0);
}
x=2;
}
我有一个最终变量 x。
现在要给 x 赋值,我有一个 if 语句来赋值并退出程序。
现在最后一条语句永远不会到达,因此该程序应该可以逻辑编译。
x 的值为 1 或 2,具体取决于 if 语句。如果 'if' 为真,则不会到达最后一条语句,如果为假,则永远不会达到 'x=1' 语句。
那么为什么这会给我一个“本地”变量已初始化的编译错误?
编辑:
是的,我显然知道最终语句只能分配一次。
我的疑问是在执行期间只会到达其中一个语句,因此以这种方式查看程序将只有一个赋值语句。
【问题讨论】:
-
查看关于 java 中定义赋值的评论
标签: java compiler-errors final