Java 不可变类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 不可变类相关的知识,希望对你有一定的参考价值。
- 什么是不可变类
- 当你获得这个类的引用时,不能改变这个类的内容;
- 不可变类的实例一旦创建,其成员变量就不能够被修改;
- 如何创建不可变类
- 成员变量均为private权限
- 不提供改变成员变量的对外接口,即set方法
- 所有方法均不可被重载,有两种实现方式:1) 所有方法均加上final关键字(弱不可变类) 2)使用 final class(强不可变类)
- 如果类的成员变量为可变子类,那么在初始化过程中,需要对这个可变子类,进行深度拷贝;
范例:
1 public class ImmuteDemo { 2 private String name; //String 为不可变类 3 private Date date; //Date 为可变类 4 5 public ImmuteDemo(String name,Date date){ 6 this.name = name; 7 this.date = new Date(date.getTime()); //对输入对象,进行拷贝 8 // date.setTime(2101); 改变输入对象,并不影响成员date的值 9 } 10 11 public String getName(){ 12 return name; 13 } 14 15 public Date getDate(){ 16 return new Date(date.getTime()); 17 } 18 19 public static void main(String[] args) { 20 Date date = new Date(); 21 ImmuteDemo immuteDemo = new ImmuteDemo("zhang san",date); 22 } 23 } 24
以上是关于Java 不可变类的主要内容,如果未能解决你的问题,请参考以下文章