我不知道为什么我在网上找不到这个答案。
我有实现多个方法的类,我想编写方法来期望它们。我不知道怎么做,或者甚至可能。
E.g:
public void yellAtPet(<? extends Pet implements YellableAt> arg) {
arg.yellAt("Don't go there!");
arg.pet("Good Boy");
}
答案 0 :(得分:7)
Extends用于接口和父类。
如果你想强制实施多项扩展,你需要这样的东西:
<T extends ClassA & InterfaceB>
要在方法上强制执行此操作,请对类进行生成:
public class MyClass<T extends something & somethingelse>{
public void doSomething(T arg)
{
//call methods defined by either interface
}
}
答案 1 :(得分:5)
这应该可以作为通用方法正常工作,而不会使整个类变得通用:
public <T extends Pet & YellableAt> void yellAtPet(T arg) {
arg.yellAt("Don't go there!");
arg.pet("Good Boy");
}