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

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

我试图把JRE系统库input到我的项目中,因为它有这个function,但是没有效果。

我怎样才能解决这个问题,并允许我的应用程序使用这个function?

我怎样才能解决这个问题,并允许我的应用程序使用这个function?

你不能。

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

String.equals("")是另一种select。


你确定没有办法将Eclipseconfiguration到明确的库中的代码类吗?

如果您希望自己的应用在真实的 Android设备上运行,则不是。 Java / Android平台故意让你很难鼓励核心类库的行为。 首先,只能通过修改bootclasspath或rt.jar文件的Davlik等效项来完成,而这两者都不能在正在运行的JVM中完成。

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

你可以使用android.text.TextUtils.isEmpty()来代替。 此方法还会检查string是否为空,并且自API级别1以来已经可用。

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

这个方法出现在API9中,所以你不能在Android2.3之前使用它

据我所知android支持java 5,所以不存在isEmpty(); 你可以使用length()来模拟isEmpty()

你可以使用这个TextUtils.isEmpty(str) 。 这是从API级别1或可以创build你自己的方法,如下所示

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

“” .equals(yourString); 也给出了像String.isEmpty()一样的行为;

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