0

オブジェクトのArrayListを返すメソッドがあります。作成され、多くのオブジェクトで満たされた配列リストを返します。同じメソッドでそれらを出力することにより、それらがそこにあることを確認します。そのArraylistを別のメソッドのパラメーターとして使用すると、arraylistが空であるかのようにエラーが発生します。

getFilaメソッドとgetColumnaメソッドを使用して、オブジェクトをそのPosition(y、x)としましょう。そして失敗するメソッド(実際には何もしません):

public static ArrayList<Position> getTrayectory (ArrayList<Position> aListPos){
        for (int ii = 0; ii < aListPos.size();ii++ ) {
            System.out.println("(" +  aListPos.get(ii).getFila() + "," + aListPos.get(ii).getColumna()+")");
        }
        return aListPos;
    }

多くのオブジェクトが含まれているArraylistを返しますが、それで何が起こっているのかわかりません。

概要:

1- I have a method that returns an ArryList
2- I create a new Arraylist with method in 1
3- I use new method with Arraylist in 2 as parameter.

(4-) Nothing happens, because new arraylist in 2 look empty.

誰かがその過程で私を助けることができますか?

4

3 に答える 3

3

EclipseのようなIDEを使用している場合は、問題のあるコードにブレークポイントを簡単に挿入でき、各変数の内容を「監視」できます。

したがって、配列リストが空になる正確なポイントを見つけることができます。

于 2012-12-19T01:22:43.233 に答える
1

ArryListにはPositionオブジェクトが含まれていると思います。正確にはわからないので、私の推測です。

       System.out.println("(" +  aListPos.get(ii).getFila() + "," 
       + ListPos.get(ii).getColumna()+")");

その代わり。これを試して

       System.out.println("(" +  (aListPos.get(ii)).getFila() + "," 
       + (ListPos.get(ii)).getColumna()+")");
于 2012-12-19T02:32:22.010 に答える
1

ArrayListを提供する(見えない)メソッドでArrayListを作成している場合、それを返しますか?または、パラメータを変更していますか?

言い換えれば、あなたはこれをしていますか?

ArrayList<Position> myArrayList = generateArrayList(); // or whatever you call it

またはあなたはこれをしていますか:

ArrayList<Position> myArrayList;
generateArrayList(myArrayList);
ArrayList<Position> result = getTrayjectory(myArrayList);

これの2番目のバージョンは機能しません。これは、メソッド内にオブジェクトを作成するときに、メソッドの境界をエスケープできる唯一の方法は、そのメソッドによって返されるためです。そうしないと、メソッドが終了したときにスコープ外になります。

于 2012-12-19T02:46:50.443 に答える