java - 非最终 - 不可变类

标签 java immutability final

我读过并且一直被告知不可变类必须是 final 。但我想知道是否有可能将非最终类对象作为不可变对象(immutable对象)。 在此链接 (Why would one declare an immutable class final in Java?) 中,如果不可变类方法是最终的并且不能被覆盖怎么办。如果该类的所有成员都是最终的,那么该类的对象也可以是不可变的(除非它们引用可变对象)。请告诉我是否有误并打勾:)

最佳答案

如果你可以扩展一个不可变类(这意味着它不是最终的),你可以向子类添加可变属性,这将使你的子类可变,因此基类也将是可变的,因为它可以有可变的子类。

关于java - 非最终 - 不可变类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28136423/

相关文章:

java - 为什么 OpenJDK 不允许我安装 SBT?它检索内存错误

java - Hadoop MapReduce使用相同的键添加值-Java

java - 更改 BlazeDS 和 Flex 中的子主题

c++ - 返回指向intent(in)参数的指针

java - "variable is accessed from within inner class needs to be declared final"错误

java - 如果方法没有被重写,是否应该将其声明为 final方法?

javascript - 如何在java中为颜色设置范围?

java - 一种将可变数据结构声明为输出并实际返回不可变数据结构的方法

java - 将可变对象转换为不可变对象(immutable对象)

java - 最终变量的理解