public class InterfaceCasting {
private static class A{}
public static void main(String[] args) {
A a = new A();
Serializable serializable = new Serializable(){};
a = (A)serializable;
}
}
Успешная компиляция, но исключение Runtime
Exception in thread "main" java.lang.ClassCastException: InterfaceCasting$1 cannot be cast to InterfaceCasting$A
ПОЧЕМУ ПОДКЛЮЧАЕТСЯ? Компилятор должен знать, что serialiazable не является A?