对于Eclipse 1.7编译器中的类型String,“isEmpty()是未定义的”?

时间:2011-12-04 03:29:20

标签: java eclipse string

  

可能重复:
  Java isEmpty() undefined for String?

我将我的代码从一个java项目复制到另一个java项目,我收到错误:

  

对于String

类型,方法isEmpty()未定义

但是同样的isEmpty()对于检查原始程序中的字符串非常有效。

相反,我可以使用str.length()==0。但想知道这是什么原因?

[edit] 所有这些都是在同一台机器上的同一个eclipse编译器版本1.7中完成的。即Windows - >偏好 - > Java - >编译器,我发现“编译器合规性级别为1.7”。包括isEmpty工作的原始程序和不工作的新程序。

我的另一个项目isEmpty工作正常。我创建了一个新的项目并复制了一部分具有isEmpty的代码,我收到了这个错误。

3 个答案:

答案 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中所做的。