美文网首页
(一)一个bug引发的学习

(一)一个bug引发的学习

作者: 50e383299c68 | 来源:发表于2018-01-02 22:31 被阅读0次
    
    if (Objects.equals(orderType, BizDictConstants.OrderType.NORMAL)) {
    
    // 正常的订单不更新 主表和子表的采购状态.
    
        continue;
    
    }
    
    

    正常的订单并没有跳出这次循环处理。应该是Objects.equals出错了。

    发现orderType和BizDictConstants.OrderType.NORMAL的类型不同。总是不相同。

    改后的代码:

    
    if (Objects.equals(orderType, BizDictConstants.OrderType.NORMAL.getCode())) {
    
    // 正常的订单不更新 主表和子表的采购状态.
    
        continue;
    
    }
    
    

    由此可以知道Objects.equals不会对参数的类型做检查。因为参数的类型是Object。任何两个无关的变量都可以用Objects.equals进行比较。但是对两个类型不同的变量进行比较是无意义的。

    因此在使用Objects.equals时要注意两个变量要为同一类型。

    同时我也想到要自己实现一个Objects.equals的方法。能够进行类型检查。

    相关文章

      网友评论

          本文标题:(一)一个bug引发的学习

          本文链接:https://www.haomeiwen.com/subject/gihcnxtx.html