最初のキャストがCCEを与えない理由を誰かが説明できますか?
public class Test {
public static void main(String[] args) throws Throwable {
Test.<RuntimeException>throwIt(new Exception());
}
@SuppressWarnings("unchecked")
private static <T extends Throwable> void throwIt(Throwable throwable) throws T {
throw (T) throwable; // no ClassCastException
throw (RuntimeException) throwable; // ClassCastException(as it should be)
}
}
PSコメント1キャスト(そうでない場合はコンパイルされません)。