java - 在java中传递类对象

标签 java class

我有一个接口(interface)和 2 个实现该接口(interface)的具体类,

public interface ITemplate{}

public Template implements ITemoplate {}
public Template2 implements ITemplate {}

我有一个方法接收 Class 对象并将其实例化。

public addTemplate(Class<ITemplate> template){
    pipe.add(template.newInstance())
}

问题是当我调用那个方法时,它会抛出一个编译时错误:

instance.addTemplate(Template.class)

Compile Time Error :

addTemplate(java.package.ITemplate.class) cannot be applied to addTemplate(java.package.Template.class)

我是不是遗漏了什么,或者是否有解决方法?

最佳答案

Class<ITemplate>将严格接受ITemplate.class

Class<? extends ITemplate>将接受任何实现 ITemplate.class 的类

关于java - 在java中传递类对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50266711/

相关文章:

Java 垃圾收集器 : PSYoungGen grows by 4 GB after Full GC

c# - 如何定位具有相同跨度类的元素?

java: ERROR: "cannot find symbol – class Constructor"当使用参数从字符串创建实例时

javascript - 将退出键绑定(bind)到实例?

java - SonarQube 支持 Java9 吗?

java - pom.xml 打包为 ejb 时出现 Maven 错误,但打包为 jar 时消失

java - 网络监听器 Android

php - PHP中的父对象

javascript - 从私有(private)函数访问类成员

java - 我们如何在 HTTPS 中执行我们自己的证书验证步骤