不可变类是指在创建后其状态(对象的字段)无法被修改的类。一旦对象被创建,它的所有属性都不能被更改。这种类的实例在整个生命周期内保持不变。
关键特征:
- 声明类为
final
,防止子类继承。 - 类的所有字段都是
private
和final
,确保它们在初始化后不能被更改。 - 通过构造函数初始化所有字段。
- 不提供任何修改对象状态的方法(如
setter
方法)。 - 如果类包含可变对象的引用,确保这些引用在对象外部无法被修改。例如 getter 方法中返回对象的副本(new 一个新的对象)来保护可变对象。
Java 中的经典不可变类有:String
、Integer
、BigDecimal
、LocalDate
等。