這個想法是做類似下面的事情,並讓編譯器在編譯時檢查toLoad是一個可以包含AType對象的數組(即:AType extends或T NOT T extends或AType)。有沒有辦法用泛型來做到這一點?是否有一種「超類」方式來定義泛型中的類型或僅「擴展」?
private List<AType> aList_;
<T superclassof AType> T[] loadArray(T[] toLoad) {
for(int i = 0; i < alist_.size(); ++i) {
toLoad[i] = (T)aList_.get(i);
}
不是我所知道的。你能解釋一下你爲什麼要這樣做嗎? – 2013-03-08 00:08:01
[用'超級'關鍵字綁定泛型]的可能副本(http://stackoverflow.com/questions/2800369/bounding-generics-with-super-keyword) – 2013-03-08 02:42:03
這是* general *問題 - 以上僅僅是簡單的說明一個有效的潛在願望:)這是一個數組可能有任何對象分配給它的數組元素類型是一個超類。即:在編譯時沒有檢查java.util.List中的「 T [] toArray(T [] a)」方法,但可以拋出運行時異常。 –
peterk
2013-03-09 02:28:18