在Java中,我们使用final关键字和变量来指定它的值不被改变。但是我发现你可以改变类的构造函数/方法中的值。再次,如果变量是static那么这是一个编译错误。
这里是代码:
import java.util.ArrayList;import java.util.List;class Test { private final List foo; public Test() { foo = new ArrayList(); foo.add("foo"); // Modification-1 } public static void main(String[] args) { Test t = new Test(); t.foo.add("bar"); // Modification-2 System.out.println("print - " + t.foo); }}上面的代码工作正常,没有错误。
现在改变变量为static:
private static final List foo;相似问题