가정하자 나는 방법 number
가 ClassCastException
에는
Float f = getNumber();
결과와 같은 메소드를 호출, Integer
의 인스턴스 가정
@SuppressWarnings("unchecked")
public <T extends Number> T getNumber() {
try {
return (T)number;
} catch (ClassCastException e) {
return null;
}
}
에게 있습니다.
지우기 유형이인데 (예외적으로) 알고 있지만 예외가 할당 수준까지 올라가고 메소드 내부에서 catchable이 아닌 이유에 대해 더 깊은 설명을 할 수 있습니까?
참고 : 내가 classT의 유형을 확인 버전 public <T extends Number> T getNumber(Class<T> classT)
을 할 수 있지만, classT
을 통과 없애 기대되고 위의 문제를 생각해 중단했다. (number
는 Integer
인스턴스이기 때문에) 예외가 발생하지 않는다 (이 Number
T
의 결합 된 형태이기 때문에)
명확하고 이해할 수있는 답변 (어떻게 빨리 작성하고 명확하게 작성할 수 있습니까?). 나는'extends Number'를 삭제 했으므로''만이'return (Object) number'가 될 것이라고 생각합니까? –
pirho
@pirho 틀 렸습니다. – Eran