无法解析符号'不可变'

时间:2013-05-27 09:53:56

标签: java concurrency intellij-idea annotations immutability

我是java的新线程,现在阅读“实践中的java并发”。你可能理解我正试图做任何例子,但不能。当我尝试使用@Immutable注释时,IDE(Idea)将其强调为红色。 可能的原因是什么?

3 个答案:

答案 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。

你根本不需要任何罐子。只需从示例中删除这些注释:)