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

解决方案 »

  1.   

    new HashSet<> 这里面装类型
    new HashSet   这里面木有装类型
    没啥区别
    new HashSet<> 这里面装类型 这个里面装了呢,就不用强制转换了
    然后,就木有然后了,给分吧 亲
      

  2.   

    怕你类型搞错出现这样那样的问题,提醒你下让你确定HashSet里类型
      

  3.   

    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(); 则可以通过编译