如何保證一個類中的實例變量不被改變
阿新 • • 發佈:2018-01-23
類型 可變 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();//保護性復制數據 } }
如何保證一個類中的實例變量不被改變