问题是从一个很特殊的情况引起的,我们的项目用了缓存,在一次查询list的过程中,由于有两个id一致,导致了list中两个对象实际上指向了一个(缓存返回的是同一个),然后我们对其中一个做了处理,另一个不做处理,很明显两个都发生了变化,这不是我们想要的。当时我想到了一个办法,对于缓存返回的对象都进行一遍深复制,但是后来发现我们的bean比较复杂,bean包含bean都有好几个,还都有好几层,最终作罢,只好查询了数据库。
所以这里问问大家遇到这种情况会怎么办?(bean比较复杂,自己new 对象,然后一个字段一个字段的赋值暂时先否定)
我还是觉得深复制是个不错的思路,只要在项目的开始阶段每个bean都去实现,就想实现序列化接口一样,我觉得会很方便。
------解决思路----------------------
均实现clone深拷贝。