我在准备 Java OCA 认证时遇到了类似以下问题的问题:
public class TestClass {
final int i;
public static void main(String[] args) {
TestClass t = new TestClass();
System.out.println(t.i);
}
}
根据 Java,实例和静态变量被赋予默认值。令人惊讶的是,这是我的控制台中显示的错误:
error: variable i not initialized in the default constructor final int i;
为什么 i
上面没有指定默认值?
最佳答案
将默认值分配给 final
变量将首先破坏使变量成为最终变量的整个目的。
final
意味着您不能在分配后更改该值。
如果为 final 变量提供了默认值,那么您将永远无法将变量的值设置为其他值(即使是第一次)。
关于java - 为什么最终实例变量没有给出默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43355406/