如何在 Java 中创建不可变类?


不可变类对象的属性在初始化后不可修改。例如,String 是 Java 中的不可变类。我们可以按照以下规则创建一个不可变类:

  • 使类变为 final − 类应为 final,这样它才无法被扩展。

  • 使每个字段变为 final − 每个字段应为 final,这样它们才无法在初始化后进行修改。

  • 为每个字段创建 getter 方法。 − 为每个字段创建一个公共 getter 方法。字段应为私有的。

  • 不为每个字段创建 setter 方法。 − 不要为任何字段创建公共 setter 方法。

  • 创建一个参数化构造函数 − 此类构造函数将用于一次初始化属性。

在下例中,我们创建了一个不可变类 Employee。

示例

现场演示
public class Tester{
   public static void main(String[] args){ 
      Employee e = new Employee(30, "Robert");
      System.out.println("Name: " + e.getName() +", Age: " + e.getAge());
   }
}

final class Employee {
   final int age;
   final String name;

   Employee(int age, String name){
      this.age = age;
      this.name = name;
   }

   public int getAge(){
      return age;
   }
   public String getName(){ 
      return name;
   }
}

输出

Name: Robert, Age: 30

更新于: 2019 年 7 月 30 日

588 次浏览

开启您的 职业生涯

完成课程后获得认证

开始
广告