akf*_*akf 18 java casting exception
今天早些时候,当我调试一些代码时发现像下面这样的东西没有引发编译时异常时我感到吃惊:
public Test () {
HashMap map = (HashMap) getList();
}
private List getList(){
return new ArrayList();
}
Run Code Online (Sandbox Code Playgroud)
你可以想象,a ClassCastException在运行时被抛出,但有人可以解释为什么在编译时List将a 转换为a HashMap是合法的吗?
ska*_*man 29
因为可以想象getList()可能会返回一个HashMap也实现的子类List.不太可能,是的,但可能,因此可编译.
| 归档时间: |
|
| 查看次数: |
547 次 |
| 最近记录: |