Допустим, у меня есть следующий класс:
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)
, так как я переопределяю суперкласс и поэтому не могу выбрать сигнатуру метода.
Я бы тоже не стал идти по дороге, пытаясь выполнить приведение, а затем перехватить полученное исключение в случае сбоя.