具有类和接口兼容性的 Java 泛型
在 Java 中,创建具有特定约束的类对象可能具有挑战性。常见的场景是定义一个类对象,该类对象扩展特定类,同时实现特定接口。然而,使用泛型同时实现这两个约束一直是一个常见的争论点。
尝试使用以下语法强制类扩展 ClassA 并实现接口 InterfaceB:
Class extends ClassA>
或
Class extends InterfaceB>
只会满足一个要求,无法将两者结合起来。
解决方案
幸运的是,Java泛型允许多个接口或类加上接口。要实现此目的,请修改通配符声明,如下所示:
如 Sun 的泛型教程中所示,通过为每个附加的必需接口附加 & InterfaceName,可以实现任意复杂的组合。例如,Collections#max 的 JavaDoc 声明演示了这种复杂性:
public static> T max(Collection extends T> coll)
保留二进制兼容性需要这些复杂的声明。
具有类和接口约束的实现
要在变量声明中实现所需的限制,请在类上放置通用边界:
class classB { } interface interfaceC { } public class MyClass{ Class variable; }
结论
Java泛型提供了灵活的方法来创建受约束的类和接口组合。通过了解语法和限制,开发人员可以利用这种能力在代码中强制执行特定要求。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3