为了安全起见,建议你复制对象或使用不可改变的对象以应付值的意外修改。在我们的例子中,字符串是不可改变的,但是日期可以复制:
| public PersonNameDOB lookupBySSN(String ssn) {
... Find the person record in the DB, etc. ... 本文来自织梦 return new PersonNameDOB(person.getName(), new Date(person.getDOB().getTime())); dedecms.com } 内容来自dedecms |
这可以阻止调用者做接下来的操作:
| PersonNameDOB personNameDOB = SSNLookup.lookupBySSN("123-45-6789");
personNameDOB.dob.setTime(0); 织梦内容管理系统 |
dedecms.com
成对的需求
织梦好,好织梦
以上的模式是笔者经常在Java应用程序接口调用中用来替代structs的方法,但是如果我们只是想返回两个类型对象,这些就还不够。看上去是唾手可得的东西其实仍然从JavaSE标准分配中神秘失踪,而这就是被原始化的Pair类。看看我们如何从上述模式来建立Pair类。 本文来自织梦
首先,值要比名称和出生日期都普遍。最普遍的是在将域名定为first和second:
| public class Pair {
public final String first; dedecms.com
public final Date second; 本文来自织梦
public Pair(String first, Date second) { 织梦好,好织梦 this.first = first; 内容来自dedecms this.second = second; copyright dedecms } dedecms.com } 织梦好,好织梦 |








