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, null
atribuí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
"?
null
atribuído a essa variável foi transformado em "null"
- esta é uma péssima idéia. Tente alterar esse design, se possível.
null
não possui métodos, também nãoequals()
. SemyString
fossenull
, como você invocaria um método? :)