---副标题:
利用java反射比较同类型的两个pojo有哪些属性值不一样
作为一个程序猿,我们与产品经理之间的斗争从来就没有停止过,我们相爱相杀,明争暗斗,在我们的心里都觉得对方是怪物。这不这两天产品经理又给了我们一个变态需求,需求内容大体如下:
作为一家具有服务产品化理念的公司,我们致力于将线下服务打包成商品,通过电子商务的形势将服务卖出去。这不,与客户签约过后我们需要在线上给客户做一个初始化的动作,说的简单点就是我们公司的业务我要录入客户的一些基本信息,这些基本信息大部分都是可以修改的,每次修改都要修改历史。很显然以上需求看上去都还很正常,可是变态的是这些修改历史的每个版本都是需要能够查到的并且每次修改的地方还要高亮显示。程序猿的文笔不好,请看下图历史纪录的现实原型:
如上图所示(这里敏感信息用红色抹去):橙色文字部分表示遇上个版本相比的修改点。整个需求当时可是为难了我们公司老司机好几天啊,这里只是列出了其中一个变态点。
这个变态点仔细想想也不难不就是历史纪录的存储格式需要设计一下么。为了方便考虑,我们的操作日志都是以json格式存储的,所以这里只要设计一下历史纪录的json格式就行了。为了设计这个格式可是花了我们研发老司机整个下午的时间啊(当然我们实际需求比这个复杂的多,这里只是举出一个有代表性的例子)。最终的json格式设置如下:
{
"id":{
"value":1,
"isRevised":false
}
"name":{
"value":"梅头脑",
"isRevised":false
},
"age":{
"value":18,