在IntelliJ中正确导入方法后,Java 11方法仍然无法被识别。

4

我开始一个新的Java 11项目,使用最新版本的IntelliJ IDEA社区版(IntelliJ IDEA 2018.3.5)。

一切似乎很顺利,但后来导入的模块中一些方法调用没有被识别,而没有明显的原因。我已经尝试了无效化缓存,但是没什么用。我还使用maven 3.6.0,因为我看到有篇文章建议说与Java 11不兼容的是IDEA附带的maven版本。

具体地,我尝试使用方法Optional.ofNullable()(其他类似of()或此类方法),IntelliJ甚至通过自动完成提供了建议。然而,在自动完成之后,IntelliJ似乎忘记了它刚才知道这个方法,并宣称:“找不到符号:class ofNullable”。有趣的是:我甚至可以Ctrl-Click可选项以跳转到该类,并查看实际上该方法确实存在。

我很无助。是否有人遇到过类似的问题?


1
文件 > 项目结构 > 项目。SDK 和语言级别设置为什么? - Michael
在Maven项目中,IntelliJ将根据Maven编译器插件的“source”/“target”选项自动更改这些内容。 - Michael
SDK和语言级别都设置为11(SDK:C:\Program Files\Java\jdk-11.0.2,语言级别:SDK - 默认值(11 - lambda表示的局部变量语法)),模块语言级别也是11(项目默认值(11 - lambda表示的局部变量语法))。 - Sebi
@Sebi,你用的是哪个版本的IntelliJ?可能是因为你使用的是不支持Java 11的旧版本。 - Karol Dowbecki
IntelliJ IDEA 2018.3.5。我刚刚在新电脑上设置好后下载了它。 - Sebi
显示剩余3条评论
1个回答

4
我已经针对使用Gradle构建工具的Spring Boot项目解决了这个问题。
IntelliJ IDEA版本应该支持Java-11(相关的JAVA版本)。
从更大的范围到更小的范围进行以下检查:
  • 检查IDE支持
  • 检查构建工具支持和配置
  • 检查项目设置
  • 检查模块设置
  • 检查应用程序运行设置
  1. 在Idea-IDE中添加Java-11 SDK 在此处输入图片描述

  2. 将Gradle JVM更改为Java-11
    首选项 --> 构建、执行、部署 --> 构建工具 --> Gradle
    旧版Intellij-Idea
    旧版Intellij Idea 新版Intellij-Idea
    gradle配置

  3. 将项目SDK和语言级别更改为Java-11 在此处输入图片描述

  4. 将模块语言级别更改为Java-11 在此处输入图片描述

  5. 将模块SDK更改为Java-11 在此处输入图片描述

  6. 将应用程序运行配置更改为Java-11 在此处输入图片描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接