这里的示例代码:Java泛型类型转换
public static BaseListAdapter<? extends Item> getListAdapter() {
...
}
...
public class MyClass<T extends Item> {
...
BaseListAdapter<T> adapter = (BaseListAdapter<T>) getListAdapter();
...
}
编译器抱怨有一个未经检查的演员。
java: unchecked cast
need: BaseListAdapter<T>
found: BaseListAdapter<capture#1, ? extends Item>
我想知道为什么会产生此警告以及如何解决它。
警告没有错误。你告诉编译器'BaseListAdapter <?通过明确的转换扩展Item>'的类型'BaseListAdapter''。编译器只是说他无法验证这一点,所以你是独立的。 –
请参阅此链接, 这可能有帮助 http://stackoverflow.com/questions/262367/type-safety-unchecked-cast –