我是 java 线程的新手,现在阅读“java concurrency in practice”。正如您可能理解的那样,我正在尝试做任何示例,但不能。当我尝试使用@Immutable
注释时 IDE(Idea) 将其下划线为红色。这可能的原因是什么?
问问题
4263 次
3 回答
6
原因是您的类路径中没有正确的 jar。
这个 jar 的 maven 工件是:
<dependency>
<groupId>net.jcip</groupId>
<artifactId>jcip-annotations</artifactId>
<version>1.0</version>
<dependency>
如果您的类路径中没有此 jar,则说明您没有注释。
但是请注意,这已被 JSR 305 取代。还有一个用于实现该 JSR 的 Maven 工件:
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>2.0.1</version>
</dependency>
(旁注:阅读的绝佳选择!这是所有 Java 开发人员的必备书籍)
于 2013-05-27T09:58:59.747 回答
1
下载提供 jcip 注释的 jar 文件并将其添加到模块依赖项中。
于 2013-05-27T09:58:49.480 回答
1
就使用那本书的例子而言,所有这些注释,比如@ThreadSafe、@Immutable/@Threadsafe,它们都只是象征性的(虽然上面的 fge 是正确的,你也可以使用这些 jar,但是从学习的角度来看,只是别理他们)
所以,干脆忽略它们。在任何地方,如果您看到 @Immutable,它仅仅意味着编写的代码是 IMMUTABLE,凭借代码实现。
你根本不需要任何罐子。只需从您的示例中删除这些注释:)
于 2013-05-27T10:25:32.527 回答