如何传递实现接口的参数?



有一个接口:

public interface InterfaceX {
void methodX();
}

具有接收实现该接口的对象的方法的类:

public class AClass {
public <T extends InterfaceX>  void Method( Class<T> argument ) {
// ....
}
}

和一个实现接口并希望调用上述方法的类。

public class BClass implements InterfaceX {
@Override
public void methodX() {
}
public void callAClassMethod() {
AClass aClass = new AClass();
aClass.Method(this);
}
}

如何做到这一点?在这段代码中,我有错误:

不存在类型变量T的实例,因此BClass符合Class

没有测试这个,但是如果你想要类类型,你必须调用getClass()

public class BClass implements InterfaceX {
@Override
public void methodX() {
}
public void callAClassMethod() {
AClass aClass = new AClass();
aClass.Method(this.getClass());
}
}

多亏了markspace,我找到了解决方案:

public class AClass {
private List<? extends InterfaceX> myList = new ArrayList<>();
public <T extends InterfaceX>  void Method( T argument ) {
myList.add(argument); // error here now... !!
}
}

相关内容

  • 没有找到相关文章

最新更新