项目中关于clone的一些感悟
2016-03-01 23:56
169 查看
写完第一篇,迫不及待的想写第二篇啦!
今天在项目里,碰到一个新的问题: 在对质检单据做确认的时候,可能质检单据的详细条目会发生变化,同一个SKU可能会生成不同的条目(质检通过+质检未通过),但是这跟之前表中存储的质检单的详细条目并不匹配,需要发生裂变。于是我考虑了如下做法:
质检单SQD
1:从前端把质检单的对象的所有信息传过来。方便之后插入数据库。
我的习惯是尽量把信息在后端处理,前端向后端尽量只发送变化的量。因为项目并没有使用框架,从页面向后端发送详细信息总是显得比较繁杂。
2:从数据库取出的SQD的list中copy出新的质检单,作为裂变项插入数据库。
一开始脑子一热:
突然想起传递的只是对象的引用,这样完全是错的。立刻删掉装作没发生过。google了一下,需要调用Object类的clone()方法。但是要调用clone(),虽然class SQD是javabean结构,成员变量都是基础数据结构,但是也要实现cloneable接口来重载调用super.clone()的。
在这种情况下终于有了
3.考虑到裂变可以分两步:
(1)修改数据库中原单据的num字段和status(标识是质检通过还是不通过)字段
(2)再根据从数据库中取出的对象来插入裂变后的单据(只是修改num和status)
代码:(明天再贴~~~)
于是就还算比较优雅的解决了这个问题吧!
虽然也没有什么啦,不过好歹也算是第一篇技术相关的博客啦!
还有很长的路要走~加油!会常来哒
今天在项目里,碰到一个新的问题: 在对质检单据做确认的时候,可能质检单据的详细条目会发生变化,同一个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)
代码:(明天再贴~~~)
于是就还算比较优雅的解决了这个问题吧!
虽然也没有什么啦,不过好歹也算是第一篇技术相关的博客啦!
还有很长的路要走~加油!会常来哒
相关文章推荐
- apache2.2后修改最大并发连接数
- 【C#进阶系列】03 配置文件管理与程序集的引用版本重定向
- Android学习-Http请求
- 浏览器缓存技术
- 11.Kibana用户指南(User Guide)
- [LeetCode]33 旋转后的有序数组中的搜索
- 用socket通讯示例代码
- 23. Merge k Sorted Lists
- 第三次作业
- 从零开始山寨Caffe·肆:线程系统
- spring 配置内存溢出监听器、文件上传、ie下载json问题
- [置顶] JavaSE学习笔记_7:Java内部类
- 小demo—实现访问网站总人数的记录
- hdu 1423 Greatest Common Increasing Subsequence(最长公共上升子序列dp)
- STM32系列产品编号信息
- 学习Linux决心书
- spring context架构--静态结构
- ubuntu 14.04下安装openssl
- poj 2127 Greatest Common Increasing Subsequence(最长公共上升子序列dp)
- 类似购物车的计算