我们如何将 Java 7类型推断用于通用实例创建功能?使用这种新风格有什么好处?
user2589993
问问题
2654 次
3 回答
5
这也称为钻石算子。它使您不必在泛型类型的实例化上编写泛型类型参数。实例化的泛型类型的类型参数是从声明中存在的类型参数推断出来的。
ArrayList<String> list = new ArrayList<>();
代替:
ArrayList<String> list = new ArrayList<String>();
于 2013-07-24T08:57:13.083 回答
2
不,菱形语法只是编码/打字的简写。这两个是一样的
List<String> a = new ArrayList<String>();
List<String> a = new ArrayList<>();
它们在编译过程中被视为相同,对编译器的提示。即使在类型擦除之前,它们的处理方式也是一样的。这实际上只是为您提供便利。
于 2013-07-24T08:59:58.297 回答
1
只是打字少了点。
从文档:
例如,考虑以下变量声明:
Map<String, List<String>> myMap = new HashMap<String, List<String>>();
在 Java SE 7 中,您可以用一组空的类型参数 (<>) 替换构造函数的参数化类型:
Map<String, List<String>> myMap = new HashMap<>();
于 2013-07-24T08:57:10.090 回答