----------------解决方案--------------------------------------------------------
恩恩~~这个不对~~~因为这是我业务的需求~~你管不着
继续找啊,很明显的
----------------解决方案--------------------------------------------------------
找不出了
----------------解决方案--------------------------------------------------------
public Date getBirthday() {
return (birthday == null)?null:(Date)birthday.clone();
}
----------------解决方案--------------------------------------------------------
这样啊 我也在想来着
学到了
----------------解决方案--------------------------------------------------------
恩,受教了
----------------解决方案--------------------------------------------------------
以下是引用liuliulc在2007-2-6 19:30:08的发言:
全版通辑(形象照)
mickboy:
顶!顶!顶!``你的新式bean 简直是COOL 毙了,不过get和set用反了..
全版通辑(形象照)
mickboy:
顶!顶!顶!``你的新式bean 简直是COOL 毙了,不过get和set用反了..
一起努力吧.
----------------解决方案--------------------------------------------------------
楼上看jxta了么?
----------------解决方案--------------------------------------------------------
public Date getBirthday() {
return (birthday == null)?null:(Date)birthday.clone();
}
为什么这里有问题呢?神,能否说明一下啊~谢谢了
----------------解决方案--------------------------------------------------------
JavaBean的基本原则就是封装一切。
就是说除非你操纵这个Bean允许你调用的方法,否则你就不能通过其他途径改变Bean中的任何内容。
那么这么改的区别到底在那里呢?
我们这样看就知道了。
User user = new User(...);
user.getBirthday().setTime(0);//问题就出在这里。我没通过User这个Bean所允许的方法就私自改变了birthday的值,这样就违反了封装的原则。
所以我们需要在外界获取birthday的时候返回一个克隆的对象而不是自己本身。这样外界不管对这个克隆的对象做了什么手脚,对自身封装的东西是不会有任何影响的。
----------------解决方案--------------------------------------------------------