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.

if (myString != null && !myString.isEmpty()) {
  // doSomething
}

Som en yderligere kommentar bør du være opmærksom på dette udtryk i equals-kontrakten:

Fra Object.equals(Object): For enhver referenceværdi x, der ikke er nul, skal x.equals(null) give retur false.

Måden at sammenligne med null på er at bruge x == null og x != null.

Desuden kaster x.field og x.method() `NullPointerException, hvis x == null.

Kommentarer (4)

Du skal kontrollere, at objektet myString er null:

if (myString != null) {
    doSomething
}
Kommentarer (0)

Prøv,

myString!=null && myString.length()>0
Kommentarer (2)