我有几个界面,例如
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将其存档。如果需要,我可以编写其他接口,但是无法将它们添加到动物类中。
你可以用Multiple Bounds
像<T extends CanFly & CanRun>
注意:日后如果您要添加一个类,请CanFly & CanRun
确保将其放在开头,<T extends className & CanFly & CanRun>
否则会引发异常
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句