Chcę wykonać jakąś akcję TYLKO JEŻELI mój ciąg ma znaczącą wartość. Więc spróbowałem tego.
if (!myString.equals("")) {
doSomething
}
i to
if (!myString.equals(null)) {
doSomething
}
i to
if ( (!myString.equals("")) && (!myString.equals(null))) {
doSomething
}
i to
if ( (!myString.equals("")) && (myString!=null)) {
doSomething
}
i to
if ( myString.length()>0) {
doSomething
}
I we wszystkich przypadkach mój program doSomething
pomimo faktu, że mój ciąg JEST PUSTY. To jest równe null
. Więc co w tym złego?
DODANY:
Znalazłem przyczynę problemu. Zmienna została zadeklarowana jako łańcuch iw konsekwencji null
przypisana do tej zmiennej została przekształcona w "null"
! Więc if (!myString.equals("null"))
działa.
System.out.println(myString)
zrobił to bezpośrednio przed blokiem if, abyś mógł zobaczyć, co tam jest?
null
”?
null
przypisany do tej zmiennej został przekształcony w "null"
- to okropny pomysł. Spróbuj zmienić ten projekt, jeśli to w ogóle możliwe.
null
nie ma żadnych metod, więc też nieequals()
. Gdyby takmyString
byłonull
, jak mógłbyś kiedykolwiek wywołać na nim metodę? :)