来自Sun 泛型教程
类型推断
为了说明最后一点,在以下示例中,推理确定传递给 pick 方法的第二个参数是 String 类型:
static <T> T pick(T a1, T a2) { return a2; }
Serializable s = pick("d", new ArrayList<String>());
最初我认为这个想法是你可以使用任何参数来代替,T
只要它以String
. 例子ArrayList<ArrayList<String>>
但是后来我看到以下也编译得很好:
Serializable s = pick("d", new ArrayList<Integer>());
似乎T
推断为 aSerializable
而不是 a String
?
那么声明的意义是什么
推断确定传递给 pick 方法的第二个参数是String 类型