Java - Eclipse编译器合规性级别1.6未按预期工作

时间:2017-10-19 23:56:58

标签: java eclipse generics combobox

我们正在开发一个仍然需要在Java 6环境中运行的项目,因此我将 - Preferences - Java - Compiler - Compliance Level和Source兼容性设置为1.6。我希望在Java 7或更高版本中引入的内容上遇到编译器错误。

虽然这适用于try-with-ressource语句等新功能,但在使用Java 6之后引入的泛型时,我不会发出警告,例如ComboBox<..>JList<..> 。事实上,在使用原始类型时,我会收到警告,即使在{6}中不是通用的ComboBox也是如此。

两个问题:

  • 为什么我使用try-with-ressource会收到错误,但在尝试使用ComboBox<..>时却不会收到错误?
  • 还有其他一些选项可以切换,以便将不可用的泛型视为错误吗?

注意:我使用的是基于Eclipse 3.6.3(Helios)和JDK 7构建的IBM Rational Application Developer 8.5.5 - 不是我的选择,只是这里给出了什么......部署对于Java 6环境是在其他地方完成的,我只需要保证我没有使用Java 7功能,但上面的内容似乎没有按预期工作......

1 个答案:

答案 0 :(得分:1)

合规级别仅涵盖语言功能,例如try-with-resources。

特定类对泛型的使用由您使用的JRE / JDK库决定。您需要使用实际的Java 6 JRE / JDK来获得正确的检查。这也包括后续版本引入的其他方法和类。

您可以在'Java&gt;中的首选项中定义其他JRE / JDK。安装了JRE的页面。

在项目的属性中,您可以在“Java构建路径”页面中定义要使用的JRE / JDK。