无法在android中调用String.isEmpty()

时间:2011-03-09 11:11:29

标签: java android

在我的Android应用程序中,我不能使用位于JDK 1.6中的 String.isEmpty() 函数。 Android 2.1 lib在java.lang.String类中没有此函数

我尝试将JRE系统库输入到我的项目中,因为它具有此功能,但没有任何效果。

如何解决此问题并允许我的应用程序使用此功能?

7 个答案:

答案 0 :(得分:120)

您可以改用android.text.TextUtils.isEmpty()。此方法还会检查String是否为空并且自API级别1起可用。

if (TextUtils.isEmpty(str)) {
    Log.d(TAG, "String is empty or null!");
}

答案 1 :(得分:83)

  

如何解决此问题并允许我的应用程序使用此功能?

你做不到。

请改用String.length() == 0。它向后兼容到JDK 1.0 ......以及J2ME。

String.equals("")是另一种选择。


  

您确定没有办法将Eclipse配置为从明确的库中放入代码类吗?

如果您希望自己的应用在真正的 Android设备上运行,那就不是了。 Java / Android平台故意让您难以修改核心类库的行为。首先,您只能通过修改bootclasspath或rt.jar文件的Davlik等效项来实现,并且这些都不能在正在运行的JVM中完成。

这种修补方式可能会导致其他应用程序破坏Java的风险。即使假设您不能直接损害Android应用程序分离(因为下面提到的进程/ uid分离),对(共享)Java核心类的恶意调整仍可能允许一个应用程序干扰或窃取来自另一个应用程序的信息

答案 2 :(得分:6)

此方法出现在API 9中,因此您无法在Android 2.3之前使用它

答案 3 :(得分:5)

您可以使用此TextUtils.isEmpty(str)。这可以从API级别1开始,或者您可以创建自己的方法,如下所示

public boolean isEmpty(CharSequence str) {
    if (str == null || str.length() == 0)
        return true;
    else
        return false;
}

答案 4 :(得分:4)

据我所知,android支持java 5,因此没有isEmpty();你可以使用length()来模拟isEmpty()

答案 5 :(得分:1)

“” 等于(yourString)。也提供了与String.isEmpty();

相同的行为

答案 6 :(得分:-4)

你必须将android API升级到9级,或者使用String.trim().length()==0String.equals(""),它应该适用于你的Android API级别和JDK版本。