第39条 必要时进行保护性拷贝
对于可变类,如果作为参数传入到自己的类里,并作为自己类的数据使用存储时,需要进行保护性拷贝,比如Date是可变的,如果传入一个Date类,最好做一个保护性拷贝,以免在调用完Period后,外面将传入的参数start进行更改,影响自己类的this.start:
public Period(Date start) { this.start = new Date(start.getTime()); }
同理,如果是作为返回对象,也需要做返回的保护性拷贝
public Date start() { return new Date(this.start.getTime()); }
原文:http://www.cnblogs.com/jiangz222/p/4934700.html