![](/img/trans.png)
[英]How to get Instance of a Class using reflection in java having generics parameter and return type method?
[英]Using Java reflection and generics: can a method specify an actual type as its return value?
我有一个维护Baz类型对象列表的类。 但是,我想在此列表中放置一些对象,这些对象是从Baz类型的子类实例化的(用于重写行为)。
到目前为止,这很简单-List中的多态。 但是,维护列表的类本身是抽象的,并且不同的实现将要求在列表中放置不同的类型。 一些抽象函数getTypeToUse应该指定要插入列表中的元素的类型。 这在Java中可行吗?
考虑以下伪代码:
public abstract class Foo {
public void Bar() {
List<Baz> qux = new ArrayList<>();
Type buzz = getTypeToUse();
Baz fizz = new buzz();
qux.add(fizz);
}
// The returned Type should be some subclass of Baz
// It would be nice to enforce this, like <? extends Baz>
public abstract Type getTypeToUse();
}
谢谢!
您可以改为返回一个类对象。 类Class<T>
实现接口Type
。 像这样定义您的方法:
public abstract Class<? extends Baz> getClassToUse();
然后像这样实现它(在Baz类中):
@Override
public Class<? extends Baz> getClassToUse() {
return Baz.class;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.