问题

尽管在所有项目设置(包括in44444712​​3)中都指定了JDK 1.7,但在尝试编译一些使用菱形运算符的简单Java 7代码时,会产生以下错误:IntelliJ 13

java: diamond operator is not supported in -source 1.5
(use -source 7 or higher to enable diamond operator)

配置中是否还有其他位置应启用expected-source 7选项?


#1 热门回答(118 赞)

请检查你的项目/模块语言级别(项目结构|项目;项目结构|模块|模块名称|来源)。你可能还想查看"设置"|编译器| Java编译器|每模块字节码版本。

也设置这个:

文件 - >项目结构 - >模块::源(在路径和依赖关系旁边),并且具有"语言级别"选项,也需要正确设置。


#2 热门回答(72 赞)

如果没有任何帮助(我的情况),你可以在你的pom.xml中设置它,如下所示:

<properties>
  <maven.compiler.source>1.7</maven.compiler.source>
  <maven.compiler.target>1.7</maven.compiler.target>
</properties>

正如这个很酷的家伙在这里提到:https://stackoverflow.com/a/25888116/1643465


#3 热门回答(13 赞)

[适用于IntelliJ IDEA 2016.2]

我想通过最新的截图扩展到Peter Gromov's answer的一部分。特别是这个特殊部分:

你可能还想查看"设置"|编译器| Java编译器|每模块字节码版本。

我相信(至少在2016年2月):检查git中的不同提交将这些提交重置为1.5。

Per-module bytecode version


原文链接