无法解析 Java 中的构造函数 'ArrayList(java.util.List<T>)`

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


我究竟做错了什么?


忽然笑
浏览 91回答 1
1回答

qq_笑_17

使用ArrayList<Class<? extends Library>>.原因很简单:SomeLib.class类型为Class<SomeLib>,而不是Class<Library>。但是,如果您通过允许它的子类(如您想要的那样)使泛型变得更宽松,那么Class<SomeLib>matches Class<? extends Library>,并且一切正常。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java