Java Pair & 类型转换问题

Java Pair & 类型转换问题,第1张

发现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();

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/788945.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存