因此,根据我对final的理解,之后不能更改变量的值。在a的情况下,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
Run Code Online (Sandbox Code Playgroud)