Date
易变
使用该setter,某人可以 无意中* 从外部修改日期实例 *
考虑一下
class MyClass { private Date billDate; public void setBillDate(Date billDate) { this.billDate = billDate; }}现在有人可以设置它
MyClass m = new MyClass();Date dateToBeSet = new Date();m.setBillDate(dateToBeSet); //The actual dateToBeSet is set to mdateToBeSet.setYear(...); //^^^^^^^^ Un-intentional modification to dateToBeSet, will also modify the m's billDate
为避免这种情况,您可能需要在设置之前进行 深度复制
public void setBillDate(Date billDate) { this.billDate = new Date(billDate.getTime());}


