即使正确导入 Java 11 方法,IntelliJ 也无法识别它们

标签 java intellij-idea

我已经使用最新版本的 IntelliJ IDEA 社区版(IntelliJ IDEA 2018.3.5)启动了一个新的 Java 11 项目。

一切似乎都正常工作了一段时间,但随后导入模块中的一些 MethodCall 没有任何明显的原因无法识别。我已经尝试过使缓存无效,但它什么也没做。我也在使用 maven 3.6.0,因为我偶然发现了一篇文章,该文章暗示说 IDEA 附带的 maven 版本与 Java 11 不兼容。

更具体地说,我尝试使用方法 Optional.ofNullable() (与 of() 或此类的任何其他方法相同)IntelliJ 甚至使用 AutoComplete 提出。然而,在自动完成之后,IntelliJ 似乎忘记了它刚刚知道该方法并宣称:“找不到符号:Nullable 类”。有趣的是:我什至可以通过 Ctrl-Click Optional 被定向到该类并看到该方法实际上是存在的。

我不知所措。有人遇到过类似的问题吗?

最佳答案

我已经使用 Gradle 构建工具为 Spring boot 项目解决了这个问题,如下所示。
IntelliJ-Idea 版本应该支持 Java-11。
更大范围到更窄范围
(IDE 支持 --> 构建工具 --> 项目设置 --> 模块设置 --> 应用程序运行设置)

  • 在 Idea-IDE 中添加 Java-11 SDK
    enter image description here
  • 将 Gradle JVM 更改为 Java-11
    enter image description here
  • 将项目 SDK 和语言级别更改为 Java-11
    enter image description here
  • 将模块语言级别更改为 Java-11
    enter image description here
  • 将模块 SDK 更改为 Java-11
    enter image description here
  • 应用程序运行配置到 Java-11
    enter image description here
  • 关于即使正确导入 Java 11 方法,IntelliJ 也无法识别它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55241614/

    相关文章:

    java - 从 Google Plus api 注销

    java - 在java中创建一个以类名作为数据类型的变量

    intellij-idea - 没有JRebel IDE插件的Gradle + JRebel + rebel-remote.xml

    performance - 如何为我的特定项目优化 IntelliJ IDEA?

    java - ivy的override标签和force=true属性有什么区别?

    java - 部署在 Tomcat 上的 Spring MVC 应用程序无法在 IntelliJ 上运行

    java - 从文本框中获取以逗号分隔的值并将其存储为数组 JAVA

    java - 使用套接字服务器/客户端传输文件

    行为附加到注释的 Java 设计问题

    java - 项目可以检测导入语句,但不会使用它