xpl*_*raj 8 java date immutability
这只是从学术学习的角度来看.我所知道的是,每当我们想要使一些类不可变时 - 它必须由最终的原始字段组成 - 引用在构造对象期间不会转义 - 如果使用其他对象,那么这些对象也需要递归不可变或API不可变像java.lang.String这样的类,还有一些其他详细的了望台!
但是我最近遇到了一个问题,其中一位采访者要求候选人创建一个包含java.util.Date的不可变类.我的第一印象告诉我,尽管我们可以使用包含日期字符串的字符串而不是Date对象本身的变通办法来实现它.
请澄清一下.谢谢.
Dru*_*ope 17
这里使类不可变的最简单的方法是创建Date对象的防御副本(当它在构造参数中传递时).那么也不要提供任何setter.像这样,类中的Date字段的引用对于该类之外的代码是可见的,因此不能修改Date.
请参阅Tom对所需吸气剂特性的评论!谢谢你的补充.
(Getter也应返回日期字段的副本,因为Date本身是可变的,并且从getter更改返回的字段也会更改类的字段.)
有关更多信息和详细信息,请访问:http://www.informit.com/articles/article.aspx?p = 31551& seqNum = 2