java如何使用类数组_java – 如何使用泛型与数组的类?
我想創建一個Classes數組,每個都代表我正在構建的系統中可用的類型。所有涉及的類都是公共超類的子類。所以我想做:
Class extends SuperClass>[] availableTypes = { SubClass1.class, SubClass2.class };
這給我錯誤:
Cannot create a generic array of Class extends SuperClass>.
我得到相同的消息,如果我嘗試限定在初始化的右手邊的數組的創建:
Class extends SuperClass>[] availableTypes = Class extends SuperClass>[] { SubClass1.class, SubClass2.class };
我可以得到代碼編譯如果我消除泛型資格:
Class[] availableTypes = { SubClass1.class, SubClass2.class };
但是后來我得到泛型警告:
類是原始類型。引用泛型類應該參數化。
我嘗試著;我嘗試著! :)此外,在這一點上,即使這沒有引起警告,我失去了一個接口,我試圖定義。我不想只返回一個任意類的數組;我想返回一個類的數組,它是特定SuperClass的所有子類!
Eclipse有一些非常強大的工具來找出什么參數用于修復泛型聲明,但在這種情況下,它會下降,因為它傾向于當你處理Class。它提供的“Infer Generic Type Arguments”過程不會改變代碼,留下警告。
我可以解決這個問題,使用集合代替:
List> availableTypes = new List>();
但是什么是正確的方法來做這個數組?
總結
以上是生活随笔為你收集整理的java如何使用类数组_java – 如何使用泛型与数组的类?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 好听带龙字的网名大全116个
- 下一篇: java bytebuffer 大小_j