Java中的Integer、Long等实例的比较

编程入门 行业动态 更新时间:2024-10-10 09:25:38

Java中的Integer、Long等<a href=https://www.elefans.com/category/jswz/34/1771375.html style=实例的比较"/>

Java中的Integer、Long等实例的比较

1.描述:

说明:ReportRepairService rrService是保修服务方法类,rrService.getReceivedUserId() != userDetail.getId()判断的是接单人员的id是否和订单中的接单人员id是否相同,

如果不相同,则打印指定的报修订单已派给他人,您无法接单。

------------------------------------------------------------------------------------------------------------------------------

ReportRepairService rrService = this.rrOrderService .findReportRepairServiceById(orderId);
                if (rrService.getReceivedUserId() != userDetail.getId()) {
                    ErrorCodeHelper
                            .Code400(dataMap, "指定的报修订单已派给他人,您无法接单。");
                }else{

                     System.out.println("接单成功");

                 }

-----------------------------------------------------------------------------------------------------------------------------------

2.问题:

这是运行在windows tomcat8.0的一段springmvc的服务器程序,在windows下本地运行是正常的打印接单成功。但是迁移到阿里云的tomcat8.0确实rrService.getReceivedUserId() != userDetail.getId()输出的永远是“指定的报修订单已派给他人,您无法接单”。也就是说rrService.getReceivedUserId() != userDetail.getId()的真值在windows和lunix系统中执行的结果是不同的。


3.问题解决:

根本原因还是不得而知。但是Java中的Integer、Long等实例的比较,需要使用equal()方法,不能使用==、!=运算符,因为Integer、Long为引用类型。
与其类似的,类比的有.NET中的Int32、Int64等变量的比较,可以使用equal()方法,也可以使用==、!=运算符,因为Int32、Int64不是引用类型,而是值类型。
所以采用.equal()方法去判断,则是会保持一样的结果,windows和lunix是一致的结果。

更多推荐

Java中的Integer、Long等实例的比较

本文发布于:2024-03-12 10:27:16,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1731305.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:实例   Java   Integer   Long

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!