Arrays.copyOf不返回对象的深层副本

时间:2018-11-05 14:10:38

标签: java arrays clone

我具有深复制正方形板的功能:

cg$ind_its  cg$scm_inventory_trans.cg$ind_type;

当我使用此功能并对cg$rec_itl cg$scm_inventory_trans_dtls.cg$row_type;进行更改时,它会对我传入的原始cg$ind_itl cg$scm_inventory_trans_dtls.cg$ind_type;进行更改。我读到l_its_id scm_inventory_trans.id%type;返回的克隆数组不受影响通过更改原始内容。但这与上面的示例完全相反。源数组中的内存引用仅按Does Arrays.copyOf produce a shallow or a deep copy?

指向新位置

什么是进行真正的深层复制以使对begin中的对象所做的更改不更改case :APEX$ROW_STATUS中的对象的最佳方法?

1 个答案:

答案 0 :(得分:0)

尝试使用类似的东西

public Square[][] copy_array(Square[][] board) {

    Square[][] nv = new Square[8][8];
    for (int i = 0; i < nv.length; i++)
        nv[i] = board[i].clone();

    return nv;
}

我没有测试,但是克隆制作了一个深拷贝