我使用的是java 8,下面是我的代码:
final List<PropertyDescriptor> descriptors = new ArrayList<>();
descriptors.add(MY_PROPERTY);
this.descriptors = Collections.unmodifiableList(descriptors);
但是IDEA建议用java 8中没有的List.of来代替它,我有点困惑为什么IDEA会这么说呢?任何想法都将是有帮助的,并提前感谢!
发布于 2021-04-29 15:09:45
您的抱怨似乎是,IntelliJ建议使用Java9和更高版本中提供的特性,但您只想为Java8构建。
将项目语言级别设置为8 - Lambdas, type annotations etc.
在IntelliJ的项目中,有多个地方您必须设置要考虑或使用的特定版本的Java。不幸的是,由于IntelliJ缺少任何通用的"set my project to Java version x“特性,您必须手动尝试每一种方法。
经过一些实验后,我发现我可以通过将文件>项目结构>项目设置>项目>项目语言级别设置为9 - Modules, private methods in interfaces etc.
来引起类似您的情况。➥。
我建议检查该设置。验证8 - Lambdas, type annotations etc.
。
另外,请注意上面设置的Project SDK
设置。这应该设置为用于Java 8的JDK。
然后选中文件> ProjectStructure > ProjectSettings >模块->源>语言级别设置为8 - Lambdas, type annotations etc.
。
另一个要检查的地方是Preferences/Settings > Build,Execution,Deployment > Compiler > Java Compiler
应将
8
.如果使用Apache Maven作为依赖项管理器和构建配置器,请将POM中的这些元素设置为8
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
在Maven工具的更高版本中,上面的两个元素可能会被以下单个元素所取代:
<maven.compiler.release>8</maven.compiler.release>
发布于 2021-04-29 15:01:10
我不能用Intellij IDEA 2021.1重现你的问题。它建议当语言级别为9或更高时使用List.of
,而当语言级别为8时则不建议使用。
您可能在项目设置或模块设置中使用比8更高的语言级别。两者都需要设置为Java8。有关如何在this中设置语言级别的信息,请参阅Intellij帖子。
https://stackoverflow.com/questions/67311970
复制相似问题