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

标签 java

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

相关文章:

java - 如何构建使用我的自定义注释注释的类列表?

java - 国际象棋游戏如果棋子阻挡了主教/皇后,则删除对角线移动(java)

java - 评级栏不变

java - 使用帮助参数时覆盖 required() 参数

java - 如何存储文本字段中的信息?

java - 计算机视觉、C++ 或 Java

java - 为 Web 应用程序选择纯 HTTPS 或 HTTP/HTTPS

java - Android TextView 和 ProgressBar 未显示在 LinearLayout 中

java - GWT 与 Eclipse 下的 Maven。开发周期是多少?

java - 锁定创建新文件夹