私有最终HashSet如何工作?

for*_*ect 0 java final

因此,根据我对final的理解,之后不能更改变量的值。在a的情况下,private final foo HashSet<>() = new HashSet<>()我可以将foo用作HashSet并在其中编辑值,但不能重新分配foo吗?

dot*_*vav 5

final 将阻止您为该变量分配任何新值,但不会使您的对象不可变。

在您的示例中

private final foo HashSet<String>() = new HashSet<>();
foo.put("bar");              // is correct
foo = new HashSet<>();       // will fail at compilation
Run Code Online (Sandbox Code Playgroud)