我有一个接口(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/