-1

我需要将类对象的所有内容复制到新的类对象。我不需要复制对数据的引用,因为在这种情况下,如果我更改对象 a2 中的字段,这些数据将在对象 a2 中更改。

public class Msg {
    String info="";
    HashMap fld = new HashMap();

    public void assign(Msg value) {
        info = value.infol;
        fld = value.fld;
    }

}

// Do stuff with class
a1 = new Msg();
a1.info="111";
a1.fld.put("1","111");

a2 = new Msg();
a2.assign(a1);

如何实现功能assign

4

2 回答 2

0

您还需要制作一个副本,HashMap否则您将有 2 个对象指向同一个HashMap.

public void Assign(Msg value)
{
    Info = value.Infol;
    fld = new HashMap(value.fld);
}
于 2013-08-08T12:35:01.500 回答
0
org.apache.commons.beanutils.PropertyUtils.copyProperties( dest, source );
于 2013-08-08T12:41:14.103 回答