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

时间:2019-09-18 16:23:24

标签: java

我正在尝试创建我的应用程序用来创建实例的库的数组列表。我有一个扩展的抽象类,因此我可以使用相同的dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'androidx.appcompat:appcompat:1.0.2' implementation 'androidx.core:core-ktx:1.0.2' implementation 'androidx.constraintlayout:constraintlayout:1.1.3' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test:runner:1.2.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' implementation 'com.github.isaac-udy:Kfilter:1.1.3' implementation 'com.github.zomato:androidphotofilters:1.0.1' implementation 'com.google.android.material:material:1.0.0' implementation 'com.github.mukeshsolanki:easypreferences:1.0.6' implementation 'org.tensorflow:tensorflow-android:+' implementation files('libs/Algorithm_1.5.jar') implementation files('libs/Basicutility_1.3.3.jar') implementation files('libs/commons-io-2.4.jar') implementation files('libs/commons-net-3.5.jar') implementation files('libs/d2xx.jar') implementation files('libs/eegproduct_1.5.jar') implementation files('libs/jmatio-1.0.jar') implementation files('libs/MQTT_1.0.jar') }

Class<T>

我现在要创建此数组列表,这就是我要这样做的方式:

abstract class Library {}
abstract class SomeLib extends Library {}

但是,出现此错误:

  

无法解析构造函数'ArrayList(java.util.List)`

我在做什么错了?

1 个答案:

答案 0 :(得分:4)

我已经在评论中说过,请使用ArrayList<Class<? extends Library>>

原因很简单:SomeLib.class的类型为Class<SomeLib>,而不是Class<Library>

但是,如果您通过允许泛型的子类(如您所愿)使泛型稍微宽松一些,那么Class<SomeLib>会与Class<? extends Library>匹配,并且一切正常。