Java7类型推断用于通用实例创建?

时间:2013-07-24 08:55:22

标签: java java-7

我们如何使用Java 7 类型推断来创建通用实例功能?使用这种新风格有什么好处?

3 个答案:

答案 0 :(得分:5)

这也称为钻石操作员。它使您不必在泛型类型的实例化上编写泛型类型参数。实例化泛型类型的类型参数是从声明中出现的类型参数推断出来的。

ArrayList<String> list = new ArrayList<>();

而不是:

ArrayList<String> list = new ArrayList<String>();

答案 1 :(得分:2)

没有。菱形语法仅仅是编码/打字的简写。这两个是相同的

List<String> a = new ArrayList<String>();  
List<String> a = new ArrayList<>();  

对于编译过程,它们的处理方式相同,提示编译器。即使在类型擦除之前,它们也是一样的。它实际上只是为您提供便利。

答案 2 :(得分:1)

只是打字少了。

来自the docs

  

例如,请考虑以下变量声明:

Map<String, List<String>> myMap = new HashMap<String, List<String>>();
  

在Java SE 7中,您可以使用一组空类型参数(&lt;&gt;)替换构造函数的参数化类型:

Map<String, List<String>> myMap = new HashMap<>();

不幸的是,you still have to type the diamond