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