0

我有两个具有相同 setter 和 getter 的 POJO,现在我想将所有 bean 值复制到另一个 bean。将一个 POJO 的所有信息复制到另一个 POJO 的最佳方法是什么?

4

3 回答 3

3

你可以使用 Apache BeanUtils ...

于 2013-10-21T10:41:38.110 回答
2

这是使用像orikaDozer这样的 Java Bean 映射器的完美情况。他们可以很好地自动执行此任务,并且您可以避免大量代码。

如果它们具有正确的获取器和设置器,则基本上可以将随机类的所有属性复制到其他类。

于 2013-10-21T10:39:07.503 回答
0

在这里实现深拷贝。最好是 POJO 里面的所有子 POJO 也会被复制,不会丢失。

public CloneExample deepCopy() {
        try {
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            ObjectOutputStream oos = new ObjectOutputStream(baos);
            oos.writeObject(this);

            ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
            ObjectInputStream ois = new ObjectInputStream(bais);
            return (CloneExample) ois.readObject();
        } catch (IOException e) {
            return null;
        } catch (ClassNotFoundException e) {
            return null;
        }
于 2013-10-21T10:41:22.817 回答