Como verificar se a minha corda é igual a nula?

Eu quero realizar alguma ação SOMENTE SE a minha corda tiver um valor significativo. Então, eu tentei isto.

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 nulo. Então, o que há de errado com isso?

ADDED:

Eu encontrei a razão do problema. A variável foi declarada como uma string e, como consequência, nulo' atribuído a esta variável foi transformado em"null"! Então,if (!myString.equals("null"))` funciona.

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

Como comentário adicional, você deve estar ciente deste termo no contrato "igual":

De Object.equals(Object):

Para qualquer valor de referência não-nulo x, x.equals(null) deve retornar falso.

A maneira de comparar com null é utilizar x == null e x != null.

Além disso, x.field e x.method() joga NullPointerException se x == nulo.

Comentários (4)

Você precisa verificar se o objeto myString é nulo:

if (myString != null) {
    doSomething
}
Comentários (0)

Tente,

myString!=null && myString.length()>0
Comentários (2)