在java中传递Class对象

ami*_*nda 4 java class

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

public interface ITemplate{}

public Template implements ITemoplate {}
public Template2 implements ITemplate {}
Run Code Online (Sandbox Code Playgroud)

我有一个接受Class对象并实例化它的方法.

public addTemplate(Class<ITemplate> template){
    pipe.add(template.newInstance())
}
Run Code Online (Sandbox Code Playgroud)

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

instance.addTemplate(Template.class)
Run Code Online (Sandbox Code Playgroud)

编译时错误:

addTemplate(java.package.ITemplate.class) cannot be applied to addTemplate(java.package.Template.class)
Run Code Online (Sandbox Code Playgroud)

我错过了什么,或者有解决方法吗?

Yas*_*jaj 8

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

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