¿Qué significa isInstance es un "equivalente dinámico" de instanceof?

¿Qué significa "equivalente dinámico"?

Me pregunto cuál es el propósito de tener en this.getClass().isInstance(aClass)lugar de this instanceof aClass. ¿Hay una diferencia?

Determina si el objeto especificado es compatible con la asignación con el objeto representado por esta clase. Este método es el equivalente dinámico de la instancia de lenguaje Java del operador

Respuesta 1

Si. No solo el orden no es el mismo, sino que object instanceof Clazzdebe tener una clase conocida en tiempo de compilación. clazz.isInstance(object)puede tomar una clase que se conoce en tiempo de ejecución.

También hay una sutil diferencia en que isInstance se auto boxeará, pero instanceof no.

p.ej

10 instanceof Integer // does not compile
Integer.class.isInstance(10) // returns true

Integer i = 10;
if (i instanceof String) // does NOT compile
if (String.class.isInstance(i)) // is false

Para ver la diferencia, le sugiero que intente usarlos.

Nota: si lo hace object.getClass().getClass()o myClass.getClass()simplemente recibirá un Classaviso. Tenga cuidado de no llamar getClass()cuando no lo necesite.

Respuesta: 2

Actualmente estoy planeando una aplicación que funciona en una base de datos relacional de objetos. El trabajo es simple: solo busca datos, analízalos, muéstralos al usuario y escribe algunos cambios. Para apoyar a ...

Estoy experimentando con OKHttp (versión 2.0.0-RC2) y SPDY y veo IOException: la transmisión se restableció: CANCELAR bastante, tal vez el 10% o más de todas las solicitudes en algunas pruebas preliminares. Cuando usas ...

Tengo varias clases que no pueden modificar los campos de los demás, sino que deben solicitar la modificación agregando un objeto de solicitud a la cola de la clase Principal. La clase principal, al final de cada ...

Digamos que tengo dos Listas (o Vectores), quiero que uno incluya todos los elementos del otro, incluso si el segundo puede obtener más elementos más tarde, deben agregarse al primero automáticamente. Por ...