私有最终哈希集如何工作?
How does a private final HashSet Work?
所以根据我对 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
所以根据我对 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