我正在嘗試創建應用程序用來創建實例的庫的數組列表。我有一個抽象類,他們擴展了它,所以我可以使用相同的Class<T>abstract class Library {}abstract class SomeLib extends Library {}我現在想創建這個數組列表,這就是我嘗試執行的方法:public ArrayList<Class<Library>> libs = new ArrayList<Class<Library>>( Arrays.asList(SomeLib.class));但是,我收到此錯誤:無法解析構造函數“ArrayList(java.util.List)”我究竟做錯了什么?
1 回答

qq_笑_17
TA貢獻1818條經驗 獲得超7個贊
使用ArrayList<Class<? extends Library>>
.
原因很簡單:SomeLib.class
類型為Class<SomeLib>
,而不是Class<Library>
。
但是,如果您通過允許它的子類(如您想要的那樣)使泛型變得更寬松,那么Class<SomeLib>
matches?Class<? extends Library>
,并且一切正常。
添加回答
舉報
0/150
提交
取消