当前位置:编程学习 > JAVA >>

求解:new HashSet<>()与new HashSet()

Collection<Object> obj2 = new HashSet<>();
Collection<Object> obj3 = new HashSet();

两种方式都通过编译,但是Obj3那里编译器会发生泛型警告,小弟主要是想知道new HashSet<>()与new HashSet()两种方式之间都有什么区别?

--------------------编程问答-------------------- new HashSet<> 这里面装类型
new HashSet   这里面木有装类型
没啥区别
new HashSet<> 这里面装类型 这个里面装了呢,就不用强制转换了
然后,就木有然后了,给分吧 亲 --------------------编程问答-------------------- 怕你类型搞错出现这样那样的问题,提醒你下让你确定HashSet里类型 --------------------编程问答-------------------- 1.5 以前不支持泛型  

HashMap hm=new HashMap();

这么写 你插入的的时候 并不会发生类型检查,因为都是作为Object存的, 但是get的时候 会根据运行时类型识别 来检查类型转换是否正确 。

常见情况   (此处为真正类型)hs.get(key)  此时如果错误 抛出转换异常。

下面的是1.5后引入泛型的时候加入的 ,其实引入泛型之后 在内部还是 保存为Object  只是在put和get的时候会有类型检查 ,并且会获得编译时期检查。
HashMap<K,T> mp=new HashMap<K,T>();
如果你插入的不是<K,T>则编译不能通过。

而 你写
HashMap mp=new HashMap(); 则可以通过编译
补充:Java ,  Java SE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,