Digamos que tengo la clase siguiente:Java Genéricos: Comparación de la clase de objeto o de <E>
public class Test<E> {
public boolean sameClassAs(Object o) {
// TODO help!
}
}
¿Cómo puedo comprobar que el o
es la misma clase que E
?
Test<String> test = new Test<String>();
test.sameClassAs("a string"); // returns true;
test.sameClassAs(4); // returns false;
No puedo cambiar la firma del método de (Object o)
como estoy overridding una superclase y así no se llega a elegir mi método de firma.
Yo también preferiría no ir por el camino de intentar un reparto y luego atrapar la excepción resultante si falla.
prefiero comparo con las clases iguales. ¿O hay una razón especial para usar ==? – ordnungswidrig
Son equivalentes. IMO == es más fácil de leer (aunque significa que el lector debe saber sobre el tipo). Es fraccionalmente más rápido antes de la línea. Ahora, lo que no parece haber probado es un clamor nulo. –