用@immutable注释不可变Java类有什么好处?
我了解了不变性的概念,以及为什么使DTO不可变是个好主意 我还注意到Java有一个用@immutable注释不可变Java类有什么好处?,java,concurrency,annotations,immutability,Java,Concurrency,Annotations,Immutability,我了解了不变性的概念,以及为什么使DTO不可变是个好主意 我还注意到Java有一个@Immutable注释,我们可以用它来注释不可变的类 我的问题是:将Java类注释为@Immutable会给我们带来什么?是否有任何库功能只对以这种方式注释的类起作用?注释记录了这样一个事实,即您的类是不可变的,并告诉类的用户您遵守了中定义的约定。直接在javadoc中包含注释也是很常见的:这是JDK选择的方法,参见示例 一些静态分析工具(如FindBugs)也可以使用该注释并验证该类是否真的是不可变的。例如,如
@Immutable
注释,我们可以用它来注释不可变的类
我的问题是:将Java类注释为
@Immutable
会给我们带来什么?是否有任何库功能只对以这种方式注释的类起作用?注释记录了这样一个事实,即您的类是不可变的,并告诉类的用户您遵守了中定义的约定。直接在javadoc中包含注释也是很常见的:这是JDK选择的方法,参见示例
一些静态分析工具(如FindBugs)也可以使用该注释并验证该类是否真的是不可变的。例如,如果忘记将公共字段设置为final,FindBugs将发出警告。主要的好处是文档化。JCIP注释是在没有实现的情况下引入的,其理论是,即使没有检查它们,它们也可以从编写文档中获得好处 我不知道当前有什么库特性依赖于类被注释为@Immutable @Immutable注释的存在有两种可能影响程序的方式
Java中的注释本身不做任何事情,但它们被外部工具使用。请查看中此类注释的非常好的检查。中的
@Immutable
注释主要用于文档
目的。