java - 使用对象的类通过反射构造对象

标签 java generics reflection

假设代码如下:

public interface Component<T>
{
}
public class ConcreteComponent<T> implements Component<T>
{
}

你会如何解决这样的编译问题:

@Override
public Class<? extends Component<?>> getComponentClass() {
    // Does not compile!
    return ConcreteComponent.class;
}

基本上,正如您所看到的,我希望能够使用组件的类通过反射构造对象。省略细节,方法的声明可能如下所示:

public <T extends Component<?>> void createComponent(Class<? extends T> clazz)
{
}

最后:

ConcreteComponent<Integer> cmp = createComponent(getComponentClass());

如有任何帮助,我们将不胜感激!

最佳答案

编译:

public Class<? extends Component> getComponent() {
    // Compiles!
    return ConcreteComponent.class;
}

关于java - 使用对象的类通过反射构造对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9159731/

相关文章:

Java 泛型 : Type Extension In Method Declaration Parameters

java - Java 中未绑定(bind)的泛型返回类型

java - Android类加载器: loadClass fails if the class implements an interface

Java BufferedImage 在 appletviewer 中工作,但在浏览器中不起作用

java - Spring MVC 奇怪的行为

java - 如何获取 JTextField 来检查文本是否等于 int

java - 我应该如何将请求主体映射到另一个对象,同时保持相同的子关系?

java - 使用通用列表作为可变参数

java - 如何在此应用程序中使用 Java Reflection

java - 如何通过反射获取类的 Array 字段?