Java 返回ArrayList并在另一个方法中使用它
我有一个方法可以返回对象的ArrayList。我返回创建的arraylist,其中填充了许多对象,通过使用相同的方法打印它们来检查它们是否存在。当我在另一个方法中将该Arraylist用作参数时,它会给我一个错误,就像Arraylist为空一样 让我们用getFila和getColumna方法来表示对象的位置(y,x)。 而失败的方法(实际上什么也不做):Java 返回ArrayList并在另一个方法中使用它,java,methods,arraylist,return,Java,Methods,Arraylist,Return,我有一个方法可以返回对象的ArrayList。我返回创建的arraylist,其中填充了许多对象,通过使用相同的方法打印它们来检查它们是否存在。当我在另一个方法中将该Arraylist用作参数时,它会给我一个错误,就像Arraylist为空一样 让我们用getFila和getColumna方法来表示对象的位置(y,x)。 而失败的方法(实际上什么也不做): 在这个过程中,有人能帮我吗?如果您使用的是像eclipse这样的IDE,您可以轻松地在有问题的代码中插入断点,并且可以“查看”每个变量的内容
在这个过程中,有人能帮我吗?如果您使用的是像eclipse这样的IDE,您可以轻松地在有问题的代码中插入断点,并且可以“查看”每个变量的内容
因此,您可以找到arraylist变为空的确切位置。如果您使用的是像eclipse这样的IDE,您可以轻松地在有问题的代码中插入断点,并且可以“监视”每个变量的内容
因此,您可以找到arraylist变为空的确切位置。我认为arraylist包含位置对象。我不太清楚,所以这只是我的猜测
System.out.println("(" + aListPos.get(ii).getFila() + ","
+ ListPos.get(ii).getColumna()+")");
相反。试试这个
System.out.println("(" + (aListPos.get(ii)).getFila() + ","
+ (ListPos.get(ii)).getColumna()+")");
我认为您的ArryList包含位置对象。我不太清楚,所以这只是我的猜测
System.out.println("(" + aListPos.get(ii).getFila() + ","
+ ListPos.get(ii).getColumna()+")");
相反。试试这个
System.out.println("(" + (aListPos.get(ii)).getFila() + ","
+ (ListPos.get(ii)).getColumna()+")");
如果您在提供ArrayList的(不可见)方法中创建ArrayList,是否返回它?或者您正在修改一个参数 换句话说,您正在这样做:
ArrayList<Position> myArrayList = generateArrayList(); // or whatever you call it
ArrayList<Position> myArrayList;
generateArrayList(myArrayList);
ArrayList<Position> result = getTrayjectory(myArrayList);
ArrayList myArrayList=generateArrayList();//或者随便你怎么称呼它
或者你正在这样做:
ArrayList<Position> myArrayList = generateArrayList(); // or whatever you call it
ArrayList<Position> myArrayList;
generateArrayList(myArrayList);
ArrayList<Position> result = getTrayjectory(myArrayList);
ArrayList myArrayList;
generateArrayList(myArrayList);
ArrayList结果=getTrayjectory(myArrayList);
第二个版本不起作用,因为当你在一个方法中创建一个对象时,它能跳出方法边界的唯一方法就是由该方法返回。否则,当方法结束时,它将超出范围。如果在提供它的(未看到的)方法中创建ArrayList,是否返回它?或者您正在修改一个参数 换句话说,您正在这样做:
ArrayList<Position> myArrayList = generateArrayList(); // or whatever you call it
ArrayList<Position> myArrayList;
generateArrayList(myArrayList);
ArrayList<Position> result = getTrayjectory(myArrayList);
ArrayList myArrayList=generateArrayList();//或者随便你怎么称呼它
或者你正在这样做:
ArrayList<Position> myArrayList = generateArrayList(); // or whatever you call it
ArrayList<Position> myArrayList;
generateArrayList(myArrayList);
ArrayList<Position> result = getTrayjectory(myArrayList);
ArrayList myArrayList;
generateArrayList(myArrayList);
ArrayList结果=getTrayjectory(myArrayList);
第二个版本不起作用,因为当你在一个方法中创建一个对象时,它能跳出方法边界的唯一方法就是由该方法返回。否则,当方法结束时,它将超出范围。您能显示准确的错误以及填充arraylist的代码吗?我现在不在计算机旁。arraylist的填充方式是否重要?我知道它是填充的,因为我可以通过它打印每个元素的值。无论如何,我会把代码粘贴到这里。@AgusDG你能解释一下这两项吗请
aListPos.get(ii).getFila()
和aListPos.get(ii).getColumna()
当然。aListPos是arraylist。它是类型Object Position,所以当我这样做时。get(ii)我得到位置ii的对象,所以toString,但是,由于我需要arraylist中每个对象的属性,我调用getFila和getColumna来调用对象位置的属性int Fila和int Columna。你能给出准确的错误和填充arraylist的代码吗?我现在不在计算机旁。arraylist的填充方式是否重要?我知道它是填充的,因为我可以通过它打印每个元素的值。无论如何,我会把代码粘贴到这里。@AgusDG你能解释一下这两项吗请aListPos.get(ii).getFila()
和aListPos.get(ii).getColumna()
当然。aListPos是arraylist。它是Object Position类型,所以当我这样做时。get(ii)我得到Position ii的对象,所以toString,但是因为我想要arraylist中每个对象的atributes,我调用getFila和getColumna来调用Object Position的atributes int Fila和int Columna。这应该作为注释而不是答案。你没有向他解释为什么会发生这种情况。这应该作为评论而不是回答。你不是在向他解释为什么会发生这种事。