我試圖使對象的狀態傳遞到「外部」,因此稍後可以通過將它傳回來恢復,但不會向外部世界公開私有狀態。在Java中,我可以用一個內部類做到這一點:訪問內部類的私有字段
class Walker {
class State {
private int pos;
private State (int p) {
pos = p;
}
}
private int pos = 0;
State setState() {
return new State(pos);
}
void setState (State s) {
pos = s.pos;
}
}
不過,如果我嘗試在斯卡拉一樣的,它說,沃克#的setState可能無法訪問狀態#POS。
class Walker {
private var pos = 0
def state = new Walker.State(pos)
def state_= (s: Walker.State) {
pos = s.pos
}
}
object Walker {
class State (private val pos: Int)
}
如何存檔與Java中相同的東西? (其它的是克隆的對象)
謝謝!我以前不知道那個私有[Something]語法。我甚至沒有考慮過這個問題,如果「Walker」可以交換「State」。 – edave 2014-09-28 22:08:08