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 doSomethingnonostante 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, nullassegnata 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"?
nullassegnato a questa variabile è stato trasformato in "null"- questa è un'idea terribile. Prova a cambiare questo disegno, se possibile.
nullnon ha alcun metodo, quindi anche noequals(). Se lomyStringfossenull, come invocheresti mai un metodo su di esso? :)