Genéricos Java: Comparando a classe do Objeto o para <E>
Digamos que eu tenho a seguinte classe:
public class Test<E> {
public boolean sameClassAs(Object o) {
// TODO help!
}
}
Como eu verificaria issoo
é da mesma classe queE
?
Test<String> test = new Test<String>();
test.sameClassAs("a string"); // returns true;
test.sameClassAs(4); // returns false;
Não consigo alterar a assinatura do método de(Object o)
como estou substituindo uma superclasse e, portanto, não posso escolher minha assinatura de método.
Eu também preferiria não seguir o caminho de tentar um elenco e depois capturar a exceção resultante se ela falhar.