我正在用 Java 编写国际象棋游戏。我有一个包含 String 二维数组板的板类。我需要能够创建一个复制主板的临时板。在 tempBoard 上进行一些更改并运行测试,而无需更改 mainBoard 中的二维数组。
public class Board implements Cloneable {
public String[][] board = new String[][]{
{"bR ", "bN ", "bB ", "bQ ", "bK ", "bB ", "bN ", "bR "},
{"bp ", "bp ", "bp ", "bp ", "bp ", "bp ", "bp ", "bp "},
{" ", "## ", " ", "## ", " ", "## ", " ", "## "},
{"## ", " ", "## ", " ", "## ", " ", "## ", " "},
{" ", "## ", " ", "## ", " ", "## ", " ", "## "},
{"## ", " ", "## ", " ", "## ", " ", "## ", " "},
{"wp ", "wp ", "wp ", "wp ", "wp ", "wp ", "wp ", "wp "},
{"wR ", "wN ", "wB ", "wQ ", "wK ", "wB ", "wN ", "wR "}
};
public Board() {
}
@Override
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
Board tempBoard = (Board ) Mainboard.clone();
tempBoard.updateBoard(move);
^ 在 main 的另一个类中,我试图在 tempBoard 上更新 Board,但这也改变了 mainBoard 中的数组。有什么建议么?
最佳答案
Java 的 clone() 是 troublesome .尝试复制构造函数。
public static Board newInstance(Board board)
{
// Set fields as appropriate to your Board class
return new Board(board.getFoo(), board.getBar());
}
关于java - 我需要帮助在 Java 中复制一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29218744/