我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019全年资料大全正版 > 泛型类 >

Java泛型类型推断求解

归档日期:08-18       文本归类:泛型类      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  倒数第二句 是指 f(newMap()); 么?你给我通过试试,泛型都没指定

  展开全部都通不过,你先说你想做什么,如果你想在newMap的时候建立指定类型的HashMap,你这个代码完成不了这个工作,因为你的代码newMap的时候没法指定,你new的HashMap是Object,Object的,所以倒数第二句它也通过不了,最后一句正因为你的代码没法指定,所以你自己想了个语法去指定,肯定错误追问哦,刚试了下,确实两个都可以通过,也许就像你说的,为了向后兼容吧。

  我用java8验证了,确实好用,我觉得可能是java8把坑挖大了,原来f(new HashMap());这种已经是坑了(坑在定义指定了泛型,实际却可以不用),但是当你自己声明自己的泛型应用方法时,编译器会把没指定的当做Object,Object处理,这样f(newMap());就编译不过。java8可能把自己指定的泛型应用方法也给划到兼容问题了,就让它通过编译了。还有我建议不要用java8,首先确实没用,而且对于它改了什么还不是很透彻,我自己就发现了好多文档里没有但是java8也改了的问题,容易造成混淆,可以等沉淀下来之后再去看于前面版本区别。你说因为编译器浪费这些时间对你学泛型有帮助么,不管怎么说为了兼容java就是在挖坑,但是我们怎么避免,不写那样的代码,如果用泛型,就定义和建立两个地方都写泛型,千万不能一个写一个不写,那样代码就危险了

本文链接:http://buggystordera.com/fanxinglei/906.html