Eu quero executar alguma ação SOMENTE SE minha string tiver um valor significativo. Então, eu tentei isso.
if (!myString.equals("")) {
doSomething
}
e isto
if (!myString.equals(null)) {
doSomething
}
e isto
if ( (!myString.equals("")) && (!myString.equals(null))) {
doSomething
}
e isto
if ( (!myString.equals("")) && (myString!=null)) {
doSomething
}
e isto
if ( myString.length()>0) {
doSomething
}
E em todos os casos, meu programa doSomething, apesar do fato de que minha string É VAZIA. É igual a null. Então, o que há de errado com isso?
ADICIONADO:
Eu encontrei a razão do problema. A variável foi declarada como uma sequência e, como conseqüência, nullatribuída a essa variável foi transformada em "null"! Então, if (!myString.equals("null"))funciona.
System.out.println(myString)imediatamente antes do if-block para que você possa ver o que há lá?
null"?
nullatribuído a essa variável foi transformado em "null"- esta é uma péssima idéia. Tente alterar esse design, se possível.
nullnão possui métodos, também nãoequals(). SemyStringfossenull, como você invocaria um método? :)