Eclipse:语法错误,参数化类型仅在源级别为1.5时才有

Tha*_*ham 41 java eclipse

我尝试使用以下代码:

ArrayList<String>
Map<String, String>
Run Code Online (Sandbox Code Playgroud)

Eclipse抱怨它们两者:语法错误,参数化类型仅在源级别为1.5时才会出现.

我使用JDK 1.6,但即使我去编译器并将合规性切换到1.5.它仍然给我这个错误.任何想法为什么?

小智 42

弹出此问题时,此解决方法很有用.

1)将Workspace JRE设置为1.5(并应用/保存).项目将重建.

2)将Workspace JRE设置回1.6(并应用/保存).项目将重建.

然后所有错误都消失了(至少现在).

  • +1我升至1.7然后回到1.6并重建. (3认同)
  • 不得不重新启动eclipse以使此修复工作. (2认同)

小智 40

它可以解决如下:

  1. 转到项目属性.

  2. 然后'Java编译器' - >选中复选框('启用项目特定设置')

  3. 将编译器合规性级别更改为"5.0"并单击"确定".

重建.它会得到解决.

此外,单击"使用默认合规性设置"复选框.


Omr*_*dan 23

我的猜测是,当您使用JDK 1.6运行eclipse时,它实际上配置了不同的默认jre.

查看Window->preferences->java->Installed JREs并确保选中的JRE是1.6.

如果默认JRE确实是1.6,则可能是项目特定设置.看到项目配置为使用正确的JRE.


小智 19

是.无论其他人说什么,Eclipse都包含一些有时会导致工作空间设置(例如1.6兼容)的错误被忽略.即使禁用了每个项目设置,工作区设置正确(1.6),正确设置了JRE,只定义了1.6 JRE等等,这是人们在对此问题提出疑问时通常会推荐的所有内容发布到各种论坛(因为他们经常).

我们不定期地,但经常,并且通常在与构建时依赖性或其他项目问题存在一些不相关的问题时.它似乎属于"无法让Eclipse识别现实"的一般类别,我总是认为,无论是对还是错,都要用Eclipse广泛的元数据来解决问题.Eclipse元数据是一种祝福和诅咒; 当一切运转良好时,它会使工具非常强大和快速.但是当存在问题时,广泛的缓存使得解决问题变得比使用其他工具更困难 - 有时候要困难得多.

  • 谢谢,这意味着我不会疯狂!每次在一个蓝色的月亮中,Eclipse决定它不关心我的任何设置,并给我这1.5合规性错误.即使一切设置正确,我也必须做Eclipse雨舞(重启,刷新,清洁,构建的一些随机组合)以安抚波浪形的红线神. (8认同)

小智 7

转到项目属性.

然后'Java编译器' - >选中复选框和"启用项目特定设置"

取消勾选"在Java上使用执行环境中的合规性'OSGi/Minimum-1.2'"框

然后将编译器合规性级别更改为"1.5",然后单击"确定".

重建它,你的问题将得到解决.


Isu*_*ghe 7

这适合我.

在eclipse中转到项目属性 - > java编译器.

然后更改为高于1.5的java.

将编译器合规性设置更改为1.6将Generated.class文件兼容性更改为1.6将源兼容性更改为1.6

谢谢. 屏幕截图的变化


sta*_*ker 5

右键单击项目并在属性对话框中选择属性,检查Java编译器设置,也许您有不同的工作区设置.