¿Cómo comprobar si mi cadena es igual a null?

Quiero realizar alguna acción SOLO SI mi cadena tiene un valor significativo. Por lo tanto, he intentado esto.

if (!myString.equals("")) {
doSomething
}

y esto

if (!myString.equals(null)) {
doSomething
}

y esto

if ( (!myString.equals("")) && (!myString.equals(null))) {
doSomething
}

y esto

if ( (!myString.equals("")) && (myString!=null)) {
doSomething
}

y esto

if ( myString.length()>0) {
doSomething
}

Y en todos los casos mi programa haceAlgo a pesar de que mi cadena ES VACIA. Es igual a null. Entonces, ¿qué pasa con eso?

AGREGADO:

He encontrado la razón del problema. La variable fue declarada como una cadena y, como consecuencia, null asignada a esta variable se transformó en "null". Así que, si (!miCadena.es igual a "null")) funciona.

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

Como comentario adicional, deberías tener en cuenta este término en el contrato de "iguales":

De Object.equals(Object): Para cualquier valor de referencia no nulo x, x.equals(null) debería devolver false.

La forma de comparar con null es utilizar x == null y x != null.

Además, x.field y x.method() lanzan una NullPointerException si x == null.

Comentarios (4)

Hay que comprobar que el objeto myString es null:

if (myString != null) {
    doSomething
}
Comentarios (0)

Inténtalo,

myString!=null && myString.length()>0
Comentarios (2)