Voglio eseguire alcune azioni SOLO SE la mia stringa ha un valore significativo. Quindi ho provato questo.
if (!myString.equals("")) {
doSomething
}
e questo
if (!myString.equals(null)) {
doSomething
}
e questo
if ( (!myString.equals("")) && (!myString.equals(null))) {
doSomething
}
e questo
if ( (!myString.equals("")) && (myString!=null)) {
doSomething
}
e questo
if ( myString.length()>0) {
doSomething
}
E in ogni caso il mio programma doSomething
nonostante il fatto che la mia stringa sia VUOTA. È uguale a null
. Quindi, cosa c'è di sbagliato in questo?
AGGIUNTO:
Ho trovato il motivo del problema. La variabile è stata dichiarata come una stringa e, di conseguenza, null
assegnata a questa variabile è stata trasformata in "null"
! Quindi if (!myString.equals("null"))
funziona.
System.out.println(myString)
immediatamente prima dell'if-block in modo da poter vedere cosa c'è?
null
"?
null
assegnato a questa variabile è stato trasformato in "null"
- questa è un'idea terribile. Prova a cambiare questo disegno, se possibile.
null
non ha alcun metodo, quindi anche noequals()
. Se lomyString
fossenull
, come invocheresti mai un metodo su di esso? :)