私有最终HashSet如何工作?

时间:2015-07-29 16:16:26

标签: java final

所以从我对final的理解后你不能改变变量的值。在private final foo HashSet<>() = new HashSet<>()的情况下,我可以使用foo作为HashSet并编辑其中的值,但我无法重新分配foo吗?

1 个答案:

答案 0 :(得分:4)

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

在您的示例中,

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