Java Casting查询异常和错误

时间:2014-04-21 12:35:17

标签: java casting

在java中我们什么时候得到不兼容的类型编译错误,什么时候得到ClassCastException?

1 个答案:

答案 0 :(得分:1)

ClassCastException API规范明确指出:

  

抛出以指示代码已尝试将对象强制转换为   它不是实例的子类。

ClassCastException在运行时发生,因为编译器认为强制转换可能是有效的。

例如:

// The below line will compile but ClassCastException will be raised at runtime
Integer i = (Integer) new Object();

编译器在编译时可以很容易地解决不兼容的类型错误。它只是查看您尝试转换特定对象的类是否属于同一层次结构。

例如:

 String str = "abc"; <br>Integer number = (Integer) str;  
// Compile Error :  Integer and String are not in the same hierarchy