假设我有以下代码
int myVar;
final boolean condition = <someCondition>;
if (condition) {
myVar = 1;
}
if (condition) {
System.out.println("myVar = " + myVar);
}
当我编译这个时,我得到了预期的myVar might not have been initialized
错误。这是编译器中的错误吗?很容易看出“myVar”是在condition
为真时设置的,并且仅在为真时才condition
被引用。(condition
也永远不会重置)
PS:对于那些关于我需要将其初始化为 0 的评论,是的,我知道这一点。但关键是,我希望“myVar”是最终的(即,最多设置一次值)