返される値は、私がarraylistに最後に追加したものと思われます。ArrayListはすべてのインデックスに対して同じ要素を返します
私は(奇妙なことは、私はm
のために返される値の印刷をやってるされ、期待どおりにある
public List<M> compute() throws CloneNotSupportedException{
G chil = (G) this.clone();
List<Move> Pm = new ArrayList<M>();
Point p;
for(/*condition*/){
//p is defined up here.basically loops through all possible values of p.
M m = pud.genM(chil, p);
Pm.add(m);
}
return Pmoves;
}
...次の関数が実行されますクラスGame
を持っています違う)が作成されているリストをループすると、各要素は最後に追加された要素と等しくなります。この最後に追加された要素が前のすべての子をオーバーライドしているようです...
変数pud
はUser
です。呼び出される関数は、他の条件であれば、いくつかのループのための追加があります、私は公平なビットを、このクラスをダウン簡略化されてきた
public M genM(GameState g, boardPoint p){
M m; // a move
for(/*condition*/){
m = new M(/*parameters*/);
return m;
}
return null;
}
...ですが、彼らは一種のだから、私はこの例からそれらを取りました不気味で、おそらく無関係です。
オブジェクトM
が
public M(String type, Point fPos, Point tPos, String input, G g){
this.type = type;
this.toPos = toPos;
this.fromPos = fromPos;
this.uInput = uInput;
result = new G(g);
//value of G gets edited here.
}
問題を再現する自己完結型プログラムを作成できますか?問題を示す単純なプログラムを作成し、問題を表示できなくなるまで単純化します。 –
サンプルコードで 'genM'を呼び出していますが、' genMenMoves'を表示しています - それらは同じメソッドであることを意図していますか? (あなたの名前があなたの実際のコードではっきりしていることを本当に願っています...) –
これは私が長い間見た中で最も謎めいたクラスとメソッドの名前です! – Paul