期望具有多重继承的参数的Java方法

时间:2011-03-14 21:27:07

标签: java syntax multiple-inheritance

我不知道为什么我在网上找不到这个答案。

我有实现多个方法的类,我想编写方法来期望它们。我不知道怎么做,或者甚至可能。

E.g:

public void yellAtPet(<? extends Pet implements YellableAt> arg) {
    arg.yellAt("Don't go there!"); 
    arg.pet("Good Boy");
}

2 个答案:

答案 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");
}