1
我想传递一个对象到列表中。该对象具有名为“moves”的String属性。在将对象传递给ArrayList之后,我想修改该对象以将“移动”的值重置为其原始状态,而不更改已传递给列表的对象。我该怎么做呢?将对象保存到列表中并修改对象的字符串而不修改列表中的条目?
我真的很挣扎请帮忙。
谢谢
我的代码是:
if(B[i] && B[j] && !B[k]){
B[i]=!B[i];
B[j]=!B[j];
B[k]=!B[k];
String previousMoves=board.moves;
board.moves=board.moves+(i+"W"+k+", ");
board.store(B);
list.add(board);
board.moves=previousMoves;//Resetting string back to original
i++;j++;k++;
B=Arrays.copyOf(H, 33);
//Checks for a BWW situation
//Makes switch to WBB
}
你不能没有制作原始对象的副本。 – shmosel
要存储2个状态,您显然需要2个对象 – Stewart
@AliShobeiri,没有捷径。只需构建一个新对象并复制原始的所有字段。 – shmosel