Java - 从接受泛型的类继承?

ary*_*axt 4 java generics inheritance

你是如何继承这门课程的?以下代码已被破坏,但它显示了我正在尝试实现的目标.

绑定不匹配:类型T不是ActivityInstrumentationTestCase2类型的有界参数的有效替代

public class MyClass<T> extends ActivityInstrumentationTestCase2<T> {
     public MyClass (Class<T> clazz) {
          super(clazz);
     }
}
Run Code Online (Sandbox Code Playgroud)

Rev*_*nzo 5

ActivityInstrumentationTestCase2的类定义是什么?

最有可能的是,ActivityInstrumentationTestCase2定义为:

class ActivityInstrumentationTestCase2<T extends SomeObject> {
 ...
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,对象的参数需要保持在其超类的参数范围内.

例如:

public class MyObject<T extends SomeObject> extends ActivityInstrumentationTestCase2<T> {
...
}
Run Code Online (Sandbox Code Playgroud)

您还可以使参数更窄.所以,如果MySomeObject扩展了SomeObject,你也可以说:

public class MyObject<T extends MySomeObject> extends ActivityInstrumentationTestCase2<T> {
...
}
Run Code Online (Sandbox Code Playgroud)

编辑添加:我刚发现了这个.我假设你使用的是同一个,所以需要定义为:

public class MyObject<T extends android.app.Activity> extends ActivityInstrumentationTestCase2<T> {
...
}
Run Code Online (Sandbox Code Playgroud)