返回ArrayList并在另一个方法中使用它

时间:2012-12-19 01:16:03

标签: java methods arraylist return

我有一个返回Objects的ArrayList的方法。我返回创建的arraylist,并填充了许多对象,我通过相同的方法打印它们来检查它们是否在那里。当我在另一个方法中使用该Arraylist作为参数时,它会给我一个错误,就像arraylist是空的一样。

让对象说它的位置(y,x),方法是getFila和getColumna。 失败的方法(实际上什么都不做):

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.

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:3)

如果您使用像eclipse这样的IDE,您可以轻松地在有问题的代码中插入断点,并且可以“观察”每个变量的内容。

所以你可以找到你的arraylist空洞的确切位置。

答案 1 :(得分:1)

我认为您的ArrayList包含Position对象。我完全不知道它只是我的猜测。

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

相反。试试这个

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

答案 2 :(得分:1)

如果要在提供它的(看不见的)方法中创建ArrayList,是否要返回它?或者您正在修改参数?

换句话说,你这样做了吗?

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

或者你是这样做的:

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

第二个版本不起作用,因为当你在方法中创建一个对象时,它可以逃脱方法边界的唯一方法是由该方法返回。否则,当方法结束时,它将超出范围。