java - 私有(private)最终 HashSet 如何工作?

标签 java final

所以根据我对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/

相关文章:

java - Calendar.WEEK_OF_YEAR 无法正常工作

java - 删除一些 HTML 标签但保留 Span 标签的正则表达式

java - 为什么克隆方法不应该在正在构建的克隆上调用任何非 final方法

java - Android View.post() 方法过多引用

Java 在初始化之前引用最终变量

java - 内部类可以访问基类中的私有(private) final方法,但为什么呢?

java - 关于内存分配的几个问题

java - 如何使用 glide 库使用 SQLite 在 gridview 中显示图像?

java - Spring @Autowired 为空

java - 强制子类定义 protected 最终实例变量