业务场景,有一个订单更新逻辑,测试订单不需要审批。
订单类型可编辑,如果是从测试类型–》正式类型,需要以上审批状态置为未审批,重新审批。
实际项目已经是七手八手的了,在原来的*山继续修修补补。
大致逻辑有下面这些东西文章来源地址https://www.toymoban.com/news/detail-671766.html
SubOrder oldOrder = SubOrderService.getProjectById(id);
// 一堆赋值、校验
// ...
// 奇葩来了
SubOrder order = oldOrder;
// 对order 一堆赋值操作 太多行没细看,就以为order是个新对象
、、、此时 修改的还是oldOrder 原数据已经被改的面目全非了 、、、、
// 下面校验了一个原始状态 是测试类型,新类型是正式类型,状态 赋值为待审批
if ("0".equals(oldOrder.getOrderType()) && "1".equals(order.getOrderType())) {
// 审批状态改成待审批
order.setStatus("1");
}
// 结果自然没有用 状态并没有改
// 破问题找了半天
文章来源:https://www.toymoban.com/news/detail-671766.html
到了这里,关于Java狗血神坑记录A a = new A();A b = a;a b指向同一个对象的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!