我正在尝试创建我的应用程序用来创建其实例的库的数组列表。我有一个他们扩展的抽象类,所以我可以使用相同的 Class<T>
abstract class Library {}
abstract class SomeLib extends Library {}
我现在想创建这个数组列表,这就是我尝试做的方式:
public ArrayList<Class<Library>> libs = new ArrayList<Class<Library>>(
Arrays.asList(SomeLib.class)
);
但是,我得到这个错误:
Cannot resolve constructor 'ArrayList(java.util.List)`
我做错了什么?
最佳答案
正如我在评论中所说,使用 ArrayList<Class<? extends Library>>
.
原因很简单:SomeLib.class
类型为 Class<SomeLib>
,这不是 Class<Library>
.
但是如果您通过允许它的子类(如您所愿)使泛型更宽松一些,那么 Class<SomeLib>
火柴Class<? extends Library>
,一切正常。
关于java - 无法在 Java 中解析构造函数 'ArrayList(java.util.List<T>)`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57997097/