我们建议我有以下课程
Public MyClass{
Date date;
//Mutable getters and setters
public Date getdate(){
retrurn date;
}
public Date setdate(Date date)
{date = date;}
//Now immutable setter and Getters
public Date getImmutableDate{
return new Date(date.getDate());
}
public void setImmutableDate(Date mydate)
{
date = new Date(mydate.getDate());
}
}
使用Spring或Hibernate Framework的可变getter和setter以及使用Immutable setter和getter进行自定义编码是一种好习惯。我害怕的是以下内容:
MyClass myclass = new MyClass();
//assuming that item date was initalized some how.
Date currentDate = myClass.getdate();
currentDate.setMonth( currentDate.getMonth() + 1 );
现在发生了什么,我刚刚在myClass对象中更改了日期变量的值,它可能是系统中bug的主要根目录。
我说错了吗? 我可以为Spring / Hibernate使用不可变的getter和setter吗?