首页 > 其他 > 详细

duoxiancheng

时间:2014-01-23 05:37:51      阅读:500      评论:0      收藏:0      [点我收藏+]

保护性拷贝(defensive copy)

bubuko.com,布布扣
package com.starfuxks;

import java.util.Date;

public class PseudoDefensiveCopyClass {
    private Date date;
    
    public PseudoDefensiveCopyClass(Date date) {
        this.date = date;
    }
    
    public Date getDate() {
        return date;
    }
}
bubuko.com,布布扣

表面上看,这个类的private变量无法被修改。但实际上是错误的,getDate反悔了关于date的引用,然后获得引用后可以直接修改date的值。所以要让date无法被修改,最简单的方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package com.starfuxks;
 
import java.util.Date;
 
public class PseudoDefensiveCopyClass {
    private Date date;
     
    public PseudoDefensiveCopyClass(Date date) {
        this.date = date;
    }
     
    public Date getDate() {
        return new Date(date);
    }
}

  

duoxiancheng

原文:http://www.cnblogs.com/starfuxks/p/3530381.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!