求解: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