【发布时间】:2014-09-12 07:39:37
【问题描述】:
我的电脑上安装了 jre7。 在 Eclipse Kepler 中,我创建了一个编译器合规级别为 1.5 的项目。 源兼容性设置也是 1.5。但是这个设置不起作用。
我可以编写使用 1.6 或更高版本中声明的方法的代码。例如:
String s = "aaa";
boolean b = s.isEmpty();
java.lang.String 中的方法 isEmpty() 是从 1.6 开始的。
当然,当使用真正的 jre 1.5 环境运行生成的类文件时,我得到了 NoSuchMethodError 异常。
这是我的来源和设置:
我该如何解决这个问题?还是 Eclipse 的 bug?
【问题讨论】:
-
您是否尝试清理和构建您的项目? 项目 -> 清理,项目 -> 构建
-
当然,但没有任何改变
-
合规级别仅设置接受的语言功能。它不会尝试检查库中的新方法。如果你想这样做,你必须使用正确级别的 JDK - 你可以告诉 Eclipse 不同项目的几个 JDK。
-
但是源兼容性设置呢?如果我选择 1.4,那么我可以使用名为 enum 的变量。但是 s.isEmpty() 仍然不是编译错误。