Скажем, у меня есть следующий класс:
public class Test<E> {
public boolean sameClassAs(Object o) {
// TODO help!
}
}
Как бы проверить, что o
- это тот же класс, что и E
?
Test<String> test = new Test<String>();
test.sameClassAs("a string"); // returns true;
test.sameClassAs(4); // returns false;
Я не могу изменить подпись метода из (Object o)
, поскольку я переопределяю суперкласс и поэтому не могу выбрать свою подпись метода.
Я также предпочел бы не идти по пути попытки броска, а затем поймать полученное исключение, если оно не получится.