Hvordan tjekker jeg, om min streng er lig med null?
Jeg ønsker at udføre en handling KUN HVIS min streng har en meningsfuld værdi. Så jeg prøvede dette.
if (!myString.equals("")) {
doSomething
}
og dette
if (!myString.equals(null)) {
doSomething
}
og dette
if ( (!myString.equals("")) && (!myString.equals(null))) {
doSomething
}
og dette
if ( (!myString.equals("")) && (myString!=null)) {
doSomething
}
og dette
if ( myString.length()>0) {
doSomething
}
Og i alle tilfælde mit program gør noget
på trods af, at min streng er tømt. Den er lig med null
. Så hvad er der galt med det?
ADDED:
Jeg har fundet årsagen til problemet. Variablen blev erklæret som en streng, og som følge heraf blev null
, der blev tildelt denne variabel, omdannet til "null"
! Så if (!myString.equals("null"))
virker.
166
3
Som en yderligere kommentar bør du være opmærksom på dette udtryk i
equals
-kontrakten:Fra
Object.equals(Object)
: For enhver referenceværdix
, der ikke er nul, skalx.equals(null)
giveretur false
.Måden at sammenligne med
null
på er at brugex == null
ogx != null
.Desuden kaster
x.field
ogx.method()
`NullPointerException
, hvisx == null
.Du skal kontrollere, at objektet
myString
ernull
:Prøv,