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

Java嵌套的通用类型不匹配

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

Java嵌套的通用类型不匹配

如果您希望能够

fourth
使用自
List<List<String>>
变量进行调用,则需要将签名更改为此:

private static void fourth(List<? extends List<?>> a){    System.out.println("List of a List of anything ");}

将上面的工作,因为不像

List<List<?>>
List<? extendsList<?>>
是兼容
List<List<String>>
。这样想:

List<List<String>> original = null;List<? extends List<?>> ok  = original; // This worksList<?> ok2      = original; // So does thisList<List<?>> notOk         = original; // This doesn'tList<Integer> original      = null;List<? extends Number> ok   = original; // This worksList<?> ok2      = original; // So does thisList<Number> notOk          = original; // This doesn't

推理很简单。如果你有

private static void fourth(List<List<?>> a) {    List<?> ohOh = Arrays.asList(new Object());    a.add(ohOh);}

然后,如果您 可以这样 调用该方法:

List<List<String>> a = new ArrayList<List<String>>();fourth(a);String fail = a.get(0).get(0); // ClassCastException here!


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

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

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