Java Object对象的比较

Java Object对象的比较

需求背景:是发现了总金额发生了变化,则做修改操作。
测试发现:如果订单号已经存在记录,则无论totalFee值发生了变化,都不会进入if条件的分支逻辑:

问题出在这里!!!是同一个对象
            OrderActualOperationInfo existingInfo = orderActualOperationInfoService.getByThirdOrderNo(request.getOrderNo());
            OrderActualOperationInfo operationInfo = existingInfo != null ? existingInfo : new OrderActualOperationInfo();
            
            //如果使用的这个比较,判断条件不成立,因为是同一个对象。
            if (!Objects.equals(existingInfo.getTotalFee(), operationInfo.getTotalFee())) {
            
            }
            
            //需要跟入参的对象拉来比较
            //改进
            // 使用 Objects.equals() 安全比较,避免空指针
            if (!Objects.equals(existingInfo.getTotalFee(), request.getTotalFee())) {
                
            }

 

posted on 2026-03-25 11:50  oktokeep  阅读(0)  评论(0)    收藏  举报