這裏的示例代碼: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 –