所以根据我对final的理解,你不能改变之后变量的值。在 private final foo HashSet<>() = new HashSet<>()
的情况下我可以使用 foo 作为 HashSet 并编辑其中的值,但我无法重新分配 foo 对吧?
最佳答案
final
将阻止您为变量分配任何新值,但它不会使您的对象变得不可变。
在您的示例中,
private final foo HashSet<String>() = new HashSet<>();
foo.put("bar"); // is correct
foo = new HashSet<>(); // will fail at compilation
关于java - 私有(private)最终 HashSet 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31705906/