我是java的新线程,现在阅读“实践中的java并发”。你可能理解我正试图做任何例子,但不能。当我尝试使用@Immutable
注释时,IDE(Idea)将其强调为红色。
可能的原因是什么?
答案 0 :(得分:4)
原因是你的类路径中没有正确的jar。
这个罐子的maven工件是:
<dependency>
<groupId>net.jcip</groupId>
<artifactId>jcip-annotations</artifactId>
<version>1.0</version>
<dependency>
如果类路径中没有此jar,则表示没有注释。
但请注意,这已被JSR 305取代。还有一个Maven工件用于该JSR的实现:
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>2.0.1</version>
</dependency>
(旁注:阅读的最佳选择!这是所有Java开发人员必备的书)
答案 1 :(得分:1)
答案 2 :(得分:1)
至于使用那本书的例子,所有这些注释,如@ ThreadSafe,@ Immutable / @Threadsafe,它们都只是象征性的(尽管上面的fge是正确的,你也可以使用那些罐子,但是从学习透视,只是忽略它们)
所以,简单地忽略它们。在任何地方,如果你看到@Immutable,它只是意味着代码实现的代码编写的代码是IMMUTABLE。
你根本不需要任何罐子。只需从示例中删除这些注释:)