Operador Java isInstance vs instanceOf
Todo el asunto de los genéricos me está arrojando un poco, y más aún el RTT.
Específicois? Ah, bueno, aquí está la esencia:
enum QueryHelper {
query1,
query2;
static <T> QueryHelper getQueryHelper (Class<T> expectedReturn) {
if (expectedReturn.isInstance (SomeRelatedClass.class))
return query1;
else
return query2;
}
}
y luego lo llamaría así:
...
QueryHelper helper = QueryHelper.getQueryHelper(SomeRelatedClass.class);
...
Esto es para que realmente pueda asignar de manera flexible el tipo de retorno de consulta en el asistente real. Realiza algunos casting y creación de objetos. Lo que estoy viendo es que no hay coincidencia, ¿debería hacerlo de alguna otra manera? ¿O es toda la idea simplemente mala?
Y el verdadero corazón de esto es que no entiendo la diferencia entre class.isInstance y el operador instanceOf? ¿Debería estar usando este último?