Saya ingin melakukan beberapa tindakan HANYA JIKA string saya memiliki nilai yang bermakna. Jadi, saya mencoba ini.
if (!myString.equals("")) {
doSomething
}
dan ini
if (!myString.equals(null)) {
doSomething
}
dan ini
if ( (!myString.equals("")) && (!myString.equals(null))) {
doSomething
}
dan ini
if ( (!myString.equals("")) && (myString!=null)) {
doSomething
}
dan ini
if ( myString.length()>0) {
doSomething
}
Dan dalam semua kasus, program saya doSomething
terlepas dari fakta bahwa string saya KOSONG. Itu sama dengan null
. Jadi, apa yang salah dengan itu?
TAMBAH:
Saya menemukan alasan masalahnya. Variabel dinyatakan sebagai string dan, sebagai konsekuensinya, null
ditugaskan untuk variabel ini ditransformasikan menjadi "null"
! Jadi, if (!myString.equals("null"))
berhasil.
System.out.println(myString)
segera sebelum if-block agar Anda dapat melihat apa yang ada di sana?
null
"?
null
ditugaskan untuk variabel ini ditransformasikan ke "null"
- ini adalah ide yang mengerikan. Cobalah untuk mengubah desain ini jika memungkinkan.
null
tidak memiliki metode, juga tidakequals()
. JikamyString
tidaknull
, bagaimana Anda pernah memanggil metode pada itu? :)