Intellij:如何为 javax.annotation.PostConstruct 添加

我将项目使用的 SDK 升级到 Java 10。以下导入语句导致错误:

导入 javax.annotation.PostConstruct;

包 'javax.annotation' 在模块 'java.xml.ws.annotation' 中声明,但模块 'application' 不读取它

http://img4.mukewang.com/611e48e200014d6412680113.jpg

按 ALT+ENTER 让 Intellij 修复它,我收到以下选项:

http://img2.mukewang.com/611e48ec000131ba12220197.jpg

我选择Add Maven Dependency...并将以下依赖项添加到 pom.xml。


<dependency>

    <groupId>javax.annotation</groupId>

    <artifactId>javax.annotation-api</artifactId>

    <version>1.3.2</version>

</dependency>

查看新添加的 JAR 的 MANIFEST.MF,我注意到该模块的名称是 java.annotation。

http://img4.mukewang.com/611e48f8000185f505890566.jpg

所以我添加requires java.annotation到module-info.java。


module application {

    requires java.annotation;

}

当我 CTRL+点击时requires java.annotation:

http://img1.mukewang.com/611e49040001794809880228.jpg

Intellij 正确导航到 JAR:

http://img3.mukewang.com/611e490e00015e0603480298.jpg

所以看起来我的模块名称是正确的,javax.annotation:javax.annotation-api并且可以用于我的模块。不幸的是,错误import javax.annotation.PostConstruct并没有消失。为了确认我的模块描述符工作正常,我添加了其他指令,并且一切正常。我还添加了指令requires java.xml.ws.annotation

http://img4.mukewang.com/611e491a0001119204700264.jpg

这使得导入语句错误消失,但是,当然,这不是一个令人满意的解决方案,因为 java.xml.ws.annotation 已被弃用并标记为删除。

http://img1.mukewang.com/611e492400013fb309350147.jpg


慕森卡
浏览 720回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java