Java对象的深度克隆(非bean)
我目前正在处理的项目有很多被序列化的对象,以便获得现有对象的深层副本。这可以正常工作,直到我们在运行时有多个调用,我们在组件之间有100次,200次甚至1000次调用,这就是我们遇到性能问题的地方。
复制被克隆的这些对象的历史原因是,在不同功能下处理相同对象的两个不同组件不应彼此改变,例如,在按下保存或同步按钮之前,Swing UI中的更改不应更改后端中的对象值。
我们有相当大的代码库,我想如果我基于反射编写克隆,它将比序列化更快地工作,但是由于我们复杂的对象层次结构或由于某些其他原因,这种方法甚至更慢。
我也尝试过使用CloneUtils(sourceforge项目),它也比较慢(我们根本就没有使用Hibernate)。 Spring BeanUtils不是一个选项(我假设从文档中它只使用bean,即内省,如果我使用它,如果使用非标准访问器暴露任何字段,我们将无法复制它们)。
有任何想法,改善性能,同时仍然在不同的副本上工作。如果我们提供自己的复制方法而不是序列化,我们有一个选项可以加快速度,但是每次更新这些方法都有缺点,如果我们忘记了我们可能会失去功能。
没有找到相关结果
已邀请:
4 个回复
黎喊病
创建对象。 在每个类中实现
方法也是一种选择。它甚至可以与克隆人的想法相结合。
乏摩纶誊伟
朗排谎纷瘟
才脊烽馈低