getclass - isinstance java
Java-null instanceof Object se evalĂșa como verdadero y falso (3)
Cuando compilo y ejecuto este código:
public class Testing {
public static void main(String... args) {
Object obj = null;
if (obj instanceof Object) {
System.out.println("returned true");
} else {
System.out.println("returned false");
}
System.out.println(" " + obj instanceof Object);
}
}
Obtengo esto en la línea de comando:
C:/Users/xxxxxx/Desktop>java Testing
returned false
true
¿No debería "null instanceof someType" siempre devolver false?
En el último System.out.println
, " " + obj
evalúa primero y el resultado, que es una String
se comprueba para la instanceof Object
y se imprime el resultado.
Esta:
" " + obj instanceof Object
se evalúa como:
(" " + obj ) instanceof Object
y " " + obj
es de hecho una cadena no nula que es una instancia de Object
.
In ("" + obj) es la parte que se evalúa primero, por lo que no es más nula después del paréntesis. Así que es la instancia de Object.
Consulte también el siguiente enlace para que su concepto sea claro.
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html