包含大量Immutable类示例的开源代码示例?

时间:2010-07-18 21:01:32

标签: java open-source immutability

我正在寻找用Java开发的不可变类的现实示例。为了能够找到那些意图是不可变的类,如果代码使用@Immutable注释或其他文档化的类是不可变的,那将会很有帮助。我还需要能够研究这些类的源代码,因此具有任何“只读”许可证的项目是合适的。

关于使用的@Immutable注释, @Immutable无关紧要。因此,无论注释是来自JSR-305还是FindBugs,还是内部等,都没关系,只是注释的简单名称是“不可变”。类似地,如果项目使用一致方式将类标记为不可变(类名约定,javadoc,标记接口等),这样我就可以搜索代码库并从不可变类中查找可变类。 ,这也是我正在寻找的。

是否有任何包含大量不可变类示例的开源代码示例?

1 个答案:

答案 0 :(得分:4)

这些库中的大多数类都是不可变的:

代码中没有Immutable注释,强硬,AFAIK。

编辑该项目主要使用文档。但有一个关键方面:如果你不希望你的类是可变的,那就不要提供(公共)setter。如果客户端代码无法修改对象的状态,那么您实际上是一个不可变的类。这是一个原则,Joda时间以及joda钱都使用。在我的脑海中,我无法在任何一个库中命名一个可变类(我到目前为止只使用了不可变的类,并且从未错过任何可变版本。)