今天给大家介绍一个在 Java 中创建不可变类的小技巧。
在Java中,如果要创建一个不可变类,需要遵循以下几个规则:
1. 将类声明为 final,以防止子类重写它。
2. 将所有的字段声明为 private 和 final,以确保它们只能被赋值一次。
3. 不提供修改字段的 setter 方法。
4. 如果在构造函数中初始化所有字段,则不需要提供任何 public 构造函数。否则,可以提供一个 public 构造函数,但它必须在内部使用 private 构造函数来初始化字段。
使用以上规则,可以创建一个不可变类,例如:
```
public final class Person {
private final String name;
private final int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
```
在这个例子中,Person 类有两个字段 name 和 age,它们都声明为 private 和 final。构造函数初始化了这两个字段,并且 Person 类没有提供任何 setter 方法。因此,Person 类的实例是不可变的。如果需要修改一个 Person 对象的属性,只能创建一个新的 Person 实例。