@pirho Вы правы
оложим, у меня есть метод
@SuppressWarnings("unchecked")
public <T extends Number> T getNumber() {
try {
return (T)number;
} catch (ClassCastException e) {
return null;
}
}
Если предположить,number
является примеромInteger
вызывая метод вроде
Float f = getNumber();
результаты вClassCastException
.
Я знаю (как-то), что это из-застирание типа но может ли кто-нибудь дать более глубокое объяснение, почему исключение возрастает до уровня назначения и не может быть перехвачено внутри метода?
НОТА: У меня есть версияpublic <T extends Number> T getNumber(Class<T> classT)
который проверяет тип из classT, но надеялся избавиться от передачиclassT
и перестал интересоваться вышеуказанной проблемой.