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是一致的结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值