我有几个接口,比如
interface CanFly{ .. }
interface CanRun{ .. }
和许多实现(由其他人完成)
class Dog implements CanFly{ .. }
class Duck implements CanFly, CanRun{ .. }
现在在某些时候我需要使用一个泛型,它需要实现两个接口的类型。
class FlyAndRunHandler <ANIMAL extends CanFly AND CanRun>{
void performAction(ANIMAL animal){
animal.fly();
animal.run();
}
}
在Scala中,它看起来像ANIMAL extends CanFly with CanRun
。有没有办法在Java中存档它。如果需要,我可以编写其他接口,但无法将它们添加到动物类中。
答案 0 :(得分:3)
您可以Multiple Bounds
使用<T extends CanFly & CanRun>
注意:将来如果你想要一个类和CanFly & CanRun
一起添加一个类,那么请确保将类放在开头,如<T extends className & CanFly & CanRun>
,否则会引发异常