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的方法。能够进行类型检查。
网友评论