博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
List 、List<?> 和List<Object>
阅读量:5882 次
发布时间:2019-06-19

本文共 951 字,大约阅读时间需要 3 分钟。

hot3.png

事实上,由于泛型参数将擦除到它的第一个边界,因此List<?>看起来等价于List实际上也是List<Object>。

List实际上表示"持有任何Object类型的原生List,而List<?>表示"具有某种特定类型的非原生List,只是我们现在不知道那种类型是什么"。

public static void test(List
list,Object o){ // (set capture of ?) can not be applied to Object // list.add(o); // cannot resolve symbol T //T t = list.get(0); Object r = list.get(0); }
public static 
T exact1(List
list){ T t = list.get(0); return t; } public static void main(String[] args) { List list = new ArrayList
(); List
list1 = new ArrayList
(); List
list2 = new ArrayList
(); Object oo = exact1(list1); Long oo3 = exact1(list2); }```**使用带有泛型类型参数的转型或instanceof 不会有任何效果**``` //将会产生"unchecheked cast" List list3 =(List
) list1; //要使用以下的方式 List list4 = List.class.cast(list1);```

转载于:https://my.oschina.net/ouyangtaohong/blog/894478

你可能感兴趣的文章
你的企业是否有自动补丁管理工具的潜在需求?
查看>>
Android freemarker模板引擎应用
查看>>
观点:全自动安全漏洞扫描器的低准确率与高性价比
查看>>
还在为测试发愁?10个开源的压力/负载测试工具
查看>>
前端开发自动化单元测试趋势
查看>>
Python中的函数与方法 以及Bound Method和Unbound Method
查看>>
虚拟机VS容器 安全比拼谁更胜一筹?
查看>>
Rackspace: IT与业务的融合是一门艺术
查看>>
雅虎高管称移动2.0将于今年年底出现
查看>>
八一八聊天机器人的那些事儿
查看>>
能理解聊天记录的微信机器人 (四)
查看>>
中软国际抢占医疗大数据风口
查看>>
RDS SQL Server - 专题分享 - 巧用执行计划缓存之执行计划编译
查看>>
《C++语言入门经典》一2.6 表达式
查看>>
个人信息泄露 一条短信盗走积蓄
查看>>
《MonoTouch开发实践指南》一1.1 搭建开发环境
查看>>
如何做好ERP项目经理?
查看>>
Alphabet财报让华尔街兴奋:股价还会涨 买买买
查看>>
数据专家必知必会的7款Python工具
查看>>
关于数据分析,管理者常犯的4个错误
查看>>