差异映射<a,b> foo =新的HashMap <a,b>()和新的HashMap&lt;&gt;()?

时间:2015-06-06 07:49:58

标签: java generics

当我们创建对象时,我不知道是否必须插入泛型类型。

 1. Map<A,B> foo = new HashMap<A,B>()  
 2. Map<A,B> foo = new HashMap<>() 

有没有人能分辨出来?

3 个答案:

答案 0 :(得分:2)

在Java 7中引入了菱形运算符(<>)并为您节省了一些输入。没有区别。

答案 1 :(得分:2)

两者之间没有区别。第二个是在Java 7中引入的 - <>被称为菱形运算符,是第一个的简写。

答案 2 :(得分:2)

Java一直被批评为过于冗长,这是在Java7中引入菱形(<>)的原因之一。

编译器通过检查表达式左侧的type-parameters来推断类型参数,并且您不需要为右侧显式提供类型参数 - 手边。

明确提供类型参数和依赖类型推断功能之间没有真正的区别。

相关问题