【发布时间】:2010-08-04 07:04:14
【问题描述】:
我认为标题应该解释一切,但以防万一......
我想知道以下 Java 代码的 sn-p 会带来哪些与强制转换相关的风险和潜在问题:
List<? extends MyObject> wildcardList = someAPI.getList();
List<MyObject> typedList = (List<MyObject>) wildcardList;
我的想法是,wildcardList 中的所有对象都应该是 MyObject 的实例(确切类型或子类),因此无论何时从 typedList 中检索对象,都不应该出现 ClassCastException。它是否正确?如果是这样,为什么编译器会生成警告?
【问题讨论】: