加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java方法链接在单行上进行转换

发布时间:2020-12-15 05:17:24 所属栏目:Java 来源:网络整理
导读:我需要将两个值一起添加,并且它们都作为Longs存储在对象HashMap中. 这就是我想要做的,我的IDE说这是一个错误. long total = currentRowContents.get("value_A").longValue() + currentRowContents.get("value_B").longValue(); 我猜这不会工作,因为currentRo
我需要将两个值一起添加,并且它们都作为Longs存储在对象HashMap中.
这就是我想要做的,我的IDE说这是一个错误.

long total = currentRowContents.get("value_A").longValue() + currentRowContents.get("value_B").longValue();

我猜这不会工作,因为currentRowContents是一个HashMap类型的Object,因此从currentRowContents.get(…)返回的内容需要被转换为Long类型,然后我可以在它上面使用.longValue()方法.

我知道我可以通过将它们分成单独的语句并进行一些转换来解决问题.但我想知道是否有办法让上述工作不分裂,如果它确实需要铸造(我相信它确实如此)放在哪里?

编辑
并不是说它会改变任何东西,但对于那些想要了解更多的人来说,我收到的答案确实可以解决问题.但我使用的Hash Map是Object,Object类型,虽然它更像String,Object使用,它确实包含来自数据库的数据.不幸的是,我不能改变Hash Map,因为它来自一个我无法改变的专用构建框架.

解决方法

看起来你正在为你的地图使用 raw type.鉴于在您的问题中使用了longValue(),可以合理地假设Map的值为Long类型

泛型可用于消除铸造的需要

Map<String,Long> currentRowContents = new HashMap<String,Long>();

如果Map的源不在您的控制范围内,则需要进行强制转换

long total = ((Long)currentRowContents.get("value_A")).longValue() + 
                  ((Long)currentRowContents.get("value_B")).longValue();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读