我将我的代码从一个java项目复制到另一个java项目,我收到错误:
对于String
类型,方法isEmpty()未定义
但是同样的isEmpty()
对于检查原始程序中的字符串非常有效。
相反,我可以使用str.length()==0
。但想知道这是什么原因?
[edit] 所有这些都是在同一台机器上的同一个eclipse编译器版本1.7中完成的。即Windows - >偏好 - > Java - >编译器,我发现“编译器合规性级别为1.7”。包括isEmpty工作的原始程序和不工作的新程序。
我的另一个项目isEmpty工作正常。我创建了一个新的项目并复制了一部分具有isEmpty的代码,我收到了这个错误。
答案 0 :(得分:9)
isEmpty是Java 1.6中的一个方法,您的问题是您已经设置了Eclipse的Java编译器合规性级别< 1.6。解决方案是进入Eclipse的首选项并将编译器的合规性级别设置为1.6或更高。
菜单:
Windows - >偏好 - > Java - >编译器。
修改强>
SyncMaster在评论中说明:
...我发现“编译器合规级别为1.7” ...我创建了一个新的项目并复制了一部分具有isEmpty的代码,我收到了这个错误
解决方案:我上面描述的是“主”合规级别,但每个项目都可以覆盖它。要检查项目的合规性级别,请在Eclipse的软件包资源管理器中右键单击该项目,单击Properties
,然后单击Java Compiler
。然后,您可以决定是否启用项目特定的设置以及这些设置应该是什么。
答案 1 :(得分:2)
您必须使用旧版本的java。 isEmpty来自Java 1.6。
http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#isEmpty()
答案 2 :(得分:1)
String.isEmpty出现在java 6中,所以你可能正在为早期版本的java编译你的程序。
使用str.length() == 0
没有问题,因为这正是在早期版本的java中所做的。