1. 程式人生 > >如何保證一個類中的實例變量不被改變

如何保證一個類中的實例變量不被改變

類型 可變 nal turn 改變 log 復制 實例變量 備份

如題,如果在一個對象中的實例屬性不能被改變,需要設置成不可變量的時候采用如下方法:
1.將類定義成final類型

2.將實例變量定義成final類型

3.將實例變量的set方法去除

4.將在構造方法中克隆一份數據設置給實例變量

5.將在get方法中將實例變量克隆一份賦值返回給用戶

public final class Demo{
    private final Date start;
    private final Date end;
    
    public Demo(Date start,Date end){
        this.start=new Date(start.getTime());//重新創建備份
        this.end=new Date(end.getTime());//重新創建備份
    }
    public Date getStart(){
        return (Date) start.clone();//保護性復制數據
    }
    public Date getEnd(){
        return (Date) end.clone();//保護性復制數據
    }
}

如何保證一個類中的實例變量不被改變