【问题标题】:Generic which is required to implement two interfaces [duplicate]实现两个接口所需的泛型[重复]
【发布时间】:2017-02-19 23:40:38
【问题描述】:

我有几个类似的接口

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 中存档。如果需要,我可以编写额外的接口,但无法将它们添加到动物类中。

【问题讨论】:

标签: java generics


【解决方案1】:

你可以像&lt;T extends CanFly &amp; CanRun&gt;一样使用Multiple Bounds

注意:以后如果你想和CanFly &amp; CanRun一起添加一个类,那么请确保将类放在开头,如&lt;T extends className &amp; CanFly &amp; CanRun&gt;,否则会引发异常

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多