¿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.
166
3
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 nulox
,x.equals(null)
deberíadevolver false
.La forma de comparar con
null
es utilizarx == null
yx != null
.Además,
x.field
yx.method()
lanzan unaNullPointerException
six == null
.Hay que comprobar que el objeto
myString
esnull
:Inténtalo,