@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 и перестал интересоваться вышеуказанной проблемой.

Ответы на вопрос(1)

Ваш ответ на вопрос