Java泛型与集合深度解析
一、钻石语法(Diamond Syntax)
在创建泛型类型实例时,以往的方式需要在声明类型和创建对象表达式中都明确指定相同的类型参数,例如:
Pair<Integer, String> worldCup = new Pair<Integer, String>(2018, "Russia");
若类型不匹配,就会导致编译错误,如:
Pair<Integer, String> worldCup = new Pair<String, String>(2018, "Russia");
为简化这一过程,Java 1.7引入了钻石语法,可省略类型参数,让编译器从类型声明中推断类型。上述声明可简化为:
Pair<Integer, String> worldCup = new Pair<>(2018, "Russia");
以下是完整使用钻石语法的示例代码:
// This program shows the usage of the diamond syntax when using generics
class Pair<T1, T2> {
T1 object1;
T2 object2