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

时间:2011-06-24 00:43:34

标签: java generics inheritance

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

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

public class MyClass<T> extends ActivityInstrumentationTestCase2<T> {
     public MyClass (Class<T> clazz) {
          super(clazz);
     }
}

1 个答案:

答案 0 :(得分:5)

ActivityInstrumentationTestCase2的类定义是什么?

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

class ActivityInstrumentationTestCase2<T extends SomeObject> {
 ...
}

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

例如:

public class MyObject<T extends SomeObject> extends ActivityInstrumentationTestCase2<T> {
...
}

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

public class MyObject<T extends MySomeObject> extends ActivityInstrumentationTestCase2<T> {
...
}

编辑添加: 我刚刚找到this。我假设你使用的是同一个,所以需要定义为:

public class MyObject<T extends android.app.Activity> extends ActivityInstrumentationTestCase2<T> {
...
}