项目中用到的 JDK 7、JDK 8 的新特性(1)省略泛型参数
此系列博文用于向我的同事介绍我在新项目中使用了一些 Java SE 1.7、Java SE 1.8 的新特性,以便同事阅读和维护这些代码。
1、省略泛型参数
这是 JDK 7 引入的特性,在调用泛型类的构造方法时,如果编译器可以明确泛型的类型,则可以省略泛型。例如:
Map<String, Map<String, String>> cache = new HashMap<String, Map<String, String>>();
可被省略为
Map<String, Map<String, String>> cache = new HashMap<>();
再例如:
private void handlePairList(List<Pair<String, String>> pairList) { ...... } public void test() { handlePairList(new ArrayList<Pair<String, String>>()); }
可被省略为
public void test() { handlePairList(new ArrayList<>()); }
如果以后用了 JDK 10 或以上版本,还可以使用 var 关键字,把
Map<String, Map<String, String>> cache = new HashMap<String, Map<String, String>>();
省略为
var cache = new HashMap<String, Map<String, String>>();