考虑下面的Java类声明: public class Test { private final int defaultValue = 10; private int var; public Test() { this(defaultValue); // <– Compiler error: cannot reference defaultValue before supertype constructor has been called. } public Test(int i) { var = i; } } 编译器不会编译,抱怨上面突出显示的那一行。 为什么这个错误发生,什么是最好的解决方法?
必须不可变的对象的所有属性是final ? 据我所知没有。 但我不知道,我是否正确。