In meiner Android-Anwendung kann ich die Funktion String.isEmpty () in JDK 1.6 nicht verwenden. Android 2.1 lib hat diese Funktion in der Klasse java.lang.String nicht
Ich habe versucht, die JRE-Systembibliothek in mein Projekt einzugeben, da es diese Funktion hat, aber es gab keine Auswirkungen.
Wie kann ich dieses Problem lösen und meiner Anwendung erlauben, diese Funktion zu verwenden?
Antworten:
Das kannst du nicht.
Verwenden Sie
String.length() == 0
stattdessen. Es ist abwärtskompatibel bis zurück zu JDK 1.0 ... und auch mit J2ME.String.equals("")
ist eine andere Alternative.Nicht, wenn Ihre App auf einem echten Android-Gerät ausgeführt werden soll. Java / Android-Plattformen machen es Ihnen absichtlich schwer, am Verhalten der Kernklassenbibliotheken zu basteln. Zunächst können Sie dies nur tun, indem Sie das Davlik-Äquivalent des Bootklassenpfads oder der Bootclate-
rt.jar
Datei ändern. Beides kann nicht in einer laufenden JVM ausgeführt werden.Diese Art des Bastelns birgt das Risiko, dass Java für andere Apps möglicherweise beschädigt wird. Selbst wenn Sie davon ausgehen, dass Sie die Trennung von Android-Apps nicht direkt gefährden können (aufgrund der unten erwähnten Trennung von Prozess und UID), können böswillige Änderungen an den (gemeinsam genutzten) Java-Kernklassen möglicherweise dazu führen, dass eine App Informationen stört oder Informationen von einer anderen App stiehlt .
quelle
String
, hat dies keine Auswirkungen auf andere Apps.Sie können stattdessen android.text.TextUtils.isEmpty () verwenden. Diese Methode prüft auch, ob der String null ist und seit API-Ebene 1 verfügbar ist.
quelle
Diese Methode wurde in API9 angezeigt, sodass Sie sie nicht vor Android2.3 verwenden können
quelle
Sie können dies verwenden
TextUtils.isEmpty(str)
. Dies ist verfügbar seit API Level 1 oder Sie können Ihre eigene Methode wie unten erstellenquelle
return (str == null || str.length() == 0);
, oder?Soweit ich weiß, unterstützt Android Java 5, es gibt also keine, die
isEmpty();
Sielength()
zum Simulieren verwenden könnenisEmpty()
quelle
"" .equals (yourString); gibt auch das gleiche Verhalten wie String.isEmpty ();
quelle
null
kommt, und das Problem zu beheben . Der"".equals(yourString)
Ansatz ist nur dann eine gute Lösung, wenn einnull
Wert füryourString
sinnvoll ist ... und erwartet wird.Sie müssen die Android-API auf Stufe 9 aktualisieren oder verwenden
String.trim().length()==0
oderString.equals("")
stattdessen sollte sie für Ihre Android-API-Stufe und Ihre JDK-Version funktionieren.quelle
" "
ist nicht leer! Warum schlagen Sie vor, die Saite zu kürzen?" ".trim()
wird leer sein !!! Weißt du das überhaupt? Bewerten Sie nicht, wenn Sie meine Beschreibung NICHT verstehen !!!String.trim().length()==0
undString.equals("")
geben unterschiedliche Ergebnisse zurück, wennString = " "
. Das zweite Snippet ist korrekt