发现Java SE9 多了Pair类, 继承自Object类,实现了Serializable接口。
它有以下方法可使用 比如
Pair<Integer, Integer> pair = new Pair(1, 2);
System.out.println(pair.getKey());
System.out.println(pair.getValue());
但是请看这种情形,当不指定类型从容器中取出时
List<Pair<Integer, Integer>> list = new ArrayList<>();
Pair<Integer, Integer> pair = new Pair(1, 2);
list.add(pair);
Pair cur = list.get(0);
int key = cur.getKey();
按理说pair.getKey()应该是Integer, 但是会报如下错误
error: incompatible types: Object cannot be converted to int
int key = cur.getKey();
^
明明是Integer, 怎么变成了Object了? 因为你没有指定cur的Pair类型,所以类型会提升到Object, 作如下修改即可
List<Pair<Integer, Integer>> list = new ArrayList<>();
Pair<Integer, Integer> pair = new Pair(1, 2);
list.add(pair);
Pair<Integer, Integer> cur = list.get(0);
int key = cur.getKey();
|