栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

具有多个类的Java泛型通配符

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

具有多个类的Java泛型通配符

实际上,你可以做你想做的事。如果要提供多个接口或一个类加接口,则必须使通配符看起来像这样:

<T extends ClassA & InterfaceB>

请参见sun.com上的泛型教程,特别是页面底部的“ 绑定类型参数”部分。实际上,如果需要,你可以列出多个接口,并& InterfaceName根据需要使用每个接口。

这会变得任意复杂。为了演示,请参阅的JavaDoc声明Collections#max(分为两行)为:

public static <T extends Object & Comparable<? super T>> T          max(Collection<? extends T> coll)

为什么这么复杂?如Java泛型常见问题解答中所述:保留二进制兼容性。

看起来这不适用于变量声明,但是在类上放置通用边界时它确实起作用。因此,要做你想做的事情,你可能不得不跳过几圈。但是你可以做到的。你可以执行以下操作,在类上放置通用边界,然后:

class classB { }interface interfaceC { }public class MyClass<T extends classB & interfaceC> {    Class<T> variable;}

得到variable具有你想要的限制。有关更多信息和示例,请查阅Java 5.0中的泛型的第3页。注意,在中

<T extends B & C>
,类名必须排在最前面,然后是接口。当然,你只能列出一个班级。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/398567.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号