public class InterfaceCasting {
private static class A{}
public static void main(String[] args) {
A a = new A();
Serializable serializable = new Serializable(){};
a = (A)serializable;
}
}
Run Code Online (Sandbox Code Playgroud)
编译成功但运行时异常
Exception in thread "main" java.lang.ClassCastException: InterfaceCasting$1 cannot be cast to InterfaceCasting$A
Run Code Online (Sandbox Code Playgroud)
为什么汇编成功?编译器必须知道serialiazable不是A?