【发布时间】:2010-08-27 09:23:05
【问题描述】:
public class InterfaceCasting {
private static class A{}
public static void main(String[] args) {
A a = new A();
Serializable serializable = new Serializable(){};
a = (A)serializable;
}
}
编译成功但运行时异常
Exception in thread "main" java.lang.ClassCastException: InterfaceCasting$1 cannot be cast to InterfaceCasting$A
为什么编译会成功?编译器必须知道 serialiazable 不是 A?
【问题讨论】:
-
我认为你必须回顾一下 Java Exception 的概念...