JavaBean的基本原则就是封装一切。
就是说除非你操纵这个Bean允许你调用的方法,否则你就不能通过其他途径改变Bean中的任何内容。
那么这么改的区别到底在那里呢?
我们这样看就知道了。
User user = new User(...);
user.getBirthday().setTime(0);//问题就出在这里。我没通过User这个Bean所允许的方法就私自改变了birthday的值,这样就违反了封装的原则。
所以我们需要在外界获取birthday的时候返回一个克隆的对象而不是自己本身。这样外界不管对这个克隆的对象做了什么手脚,对自身封装的东西是不会有任何影响的。