java - 需要实现两个接口(interface)的泛型

标签 java generics

<分区>

我有几个接口(interface),比如

interface CanFly{ .. }
interface CanRun{ .. }

和很多实现(由其他人完成)

class Dog implements CanFly{ .. }
class Duck implements CanFly, CanRun{ .. }

现在在某些时候我需要使用一个泛型,它需要实现两个接口(interface)的类型。

 class FlyAndRunHandler <ANIMAL extends CanFly AND CanRun>{
    void performAction(ANIMAL animal){
       animal.fly();
       animal.run();
    }
 }

在 Scala 中,它看起来像 ANIMAL extends CanFly with CanRun。有没有办法用 Java 将其存档。如果需要,我可以编写额外的接口(interface),但无法将它们添加到动物类中。

最佳答案

你可以使用Multiple Bounds喜欢<T extends CanFly & CanRun>

注意:将来如果您想添加一个类以及 CanFly & CanRun然后确保将类放在开头,如 <T extends className & CanFly & CanRun>否则会抛出异常

关于java - 需要实现两个接口(interface)的泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39977104/

相关文章:

java - 使用java控制何时关闭HttpClient s3

java - 绑定(bind)不匹配 : The type is not a valid substitute for the bounded parameter

C# 泛型类调用方法重载原语

java - 在 Mac 上安装 Jmagick-6.6.9 未生成 .dylib

java - 在方法参数中设置数组项

java - 为什么泛型类型具有相同的签名?

Java:将泛型类型传递给另一个泛型类型类

vb.net - 是否有等效于 String.Split 的返回通用列表的函数?

java - 如何在 Java 枚举中定义静态常量?

java - 从 cmd 获取输出 java 编译