答案 0 :(得分:7)
您应该检查以下内容:
如果您使用Maven,请检查pom.xml
中编译器插件的“源”和“目标”属性是否为11。模块语言级别配置是从pom.xml
配置中导入的,例如情况
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
或
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
如果您的pom.xml
的源或目标级别错误,则可能需要右键单击| Maven |更改该pom.xml
后重新导入。如果使用Gradle,则应检查是否具有类似的配置。
在IntelliJ IDEA 2018.2.4中使用Maven 3.5.4进行了测试
答案 1 :(得分:5)
尝试将编译器目标字节码版本设置为11。
为此,请转到Settings
-Build Execution Deployment
-Compiler
-Java compiler
,然后将模块的目标字节码版本设置为11。
答案 2 :(得分:4)
您可以使用JDK 11进行编译,但是如果针对较旧版本的Java进行编译,它将找不到该方法。
转到File > Project Structure -> Project
并检查项目语言级别,如下图的箭头所示:
请注意,我具有以下Java编译器设置(使用IntelliJ 2018.3的新项目的默认设置): 项目字节码版本与语言级别相同!
答案 3 :(得分:1)
我有类似的问题。对于Java 11功能,没有找到符号。尽管一切都已经设置为11。
解决方案是,在我的Idea设置中,Gradle JVM设置为JDK8。(因为我后来添加了JDK 11)
在我的build.gradle中未设置的sourceCompatibilty
和targetCompatibility
中,gradle守护程序(从Idea开始)正在运行并使用JDK 8进行编译。这些属性动态设置为8(或1.8)。
我的解决方案是告诉我将Gradle的JVM设置为11的想法:
答案 4 :(得分:0)