发现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();
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)