我正在尝试创建应用程序用来创建实例的库的数组列表。我有一个抽象类,他们扩展了它,所以我可以使用相同的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
提交
取消