如題,如果在一個物件中的例項屬性不能被改變,需要設定成不可變數的時候採用如下方法:
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();//保護性複製資料 } }