项目中关于clone的一些感悟

来源:互联网 发布:怎样修改淘宝掌柜名字 编辑:程序博客网 时间:2024/05/20 06:54

写完第一篇,迫不及待的想写第二篇啦!

今天在项目里,碰到一个新的问题: 在对质检单据做确认的时候,可能质检单据的详细条目会发生变化,同一个SKU可能会生成不同的条目(质检通过+质检未通过),但是这跟之前表中存储的质检单的详细条目并不匹配,需要发生裂变。于是我考虑了如下做法:

质检单SQD

1:从前端把质检单的对象的所有信息传过来。方便之后插入数据库。

我的习惯是尽量把信息在后端处理,前端向后端尽量只发送变化的量。因为项目并没有使用框架,从页面向后端发送详细信息总是显得比较繁杂。

2:从数据库取出的SQD的list中copy出新的质检单,作为裂变项插入数据库。

一开始脑子一热:

for(SQD oldSqd:sqds){     SQD newsqd = oldSqd;}

突然想起传递的只是对象的引用,这样完全是错的。立刻删掉装作没发生过。google了一下,需要调用Object类的clone()方法。但是要调用clone(),虽然class SQD是javabean结构,成员变量都是基础数据结构,但是也要实现cloneable接口来重载调用super.clone()的。

在这种情况下终于有了

3.考虑到裂变可以分两步:
(1)修改数据库中原单据的num字段和status(标识是质检通过还是不通过)字段
(2)再根据从数据库中取出的对象来插入裂变后的单据(只是修改num和status)

代码:(明天再贴~~~)

于是就还算比较优雅的解决了这个问题吧!

虽然也没有什么啦,不过好歹也算是第一篇技术相关的博客啦!
还有很长的路要走~加油!会常来哒

0 0