在java中复制对象
我想对一个对象执行深度复制,在java中复制对象,java,cloning,Java,Cloning,我想对一个对象执行深度复制,clone函数是否工作到这种程度,或者我是否必须创建一个函数来物理复制它,并返回指向它的指针?就是我要 Board tempBoard = board.copy(); 这会将board对象复制到tempBoard中,其中board对象包含: public interface Board { Board copy(); } public class BoardConcrete implements Board { @override publ
clone
函数是否工作到这种程度,或者我是否必须创建一个函数来物理复制它,并返回指向它的指针?就是我要
Board tempBoard = board.copy();
这会将board对象复制到tempBoard中,其中board对象包含:
public interface Board {
Board copy();
}
public class BoardConcrete implements Board {
@override
public Board copy() {
//need to create a copy function here
}
private boolean isOver = false;
private int turn;
private int[][] map;
public final int width, height;
}
界面和方法是为制作对象的副本而设计的。但是,为了进行深度复制,您必须自己实现clone()
public class Board {
private boolean isOver = false;
private int turn;
private int[][] map;
public final int width, height;
@Override
public Board clone() throws CloneNotSupportedException {
return new Board(isOver, turn, map.clone(), width, height);
}
private Board(boolean isOver, int turn, int[][] map, int width, int height) {
this.isOver = isOver;
this.turn = turn;
this.map = map;
this.width = width;
this.height = height;
}
}