2012-12-19 91 views
0

我有一個方法返回對象的ArrayList。我返回創建的數組列表,其中充滿了許多對象,我通過用相同的方法打印它們來檢查它們是否在那裏。當我在另一種方法中使用該Arraylist作爲參數時,它會給我一個錯誤,就像數組列表爲空。返回ArrayList並在另一種方法中使用它

可以使用方法getFila和getColumna說出對象的位置(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. 

誰能幫助我在這個過程中?

+2

你可以顯示確切的錯誤和你的數組列表填充的代碼? –

+0

我現在不在電腦上。數組列表的填充方式有多重要?我知道這是充滿的,因爲我可以通過它打印每個元素的值來巡迴。無論如何,我貼這裏的代碼。 – AgusDG

+0

@AgusDG你可以解釋這兩個項目請'aListPos.get(ii).getFila()'和'aListPos.get(ii).getColumna()' – Smit

回答

1

如果您在提供它的(unseen)方法中創建ArrayList,是否返回它?還是你在修改一個參數?

換句話說,你這樣做:

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

還是要這樣:

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

這樣做的第二個版本將無法正常工作,因爲當你內部創建一個對象一個方法,它可以轉義方法邊界的唯一方法是由該方法返回。否則,當方法結束時它超出範圍。

3

如果您使用的是像eclipse這樣的IDE,您可以輕鬆地在有問題的代碼中插入一個斷點,並且可以「觀察」每個變量的內容。

所以你可以找出你的數組列表變空的確切點。

+1

這應該作爲評論沒有回答。你沒有向他解釋爲什麼會發生這種情況。 – Smit

1

我認爲你的ArryList包含位置對象。我不完全知道它只是我的猜測。

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

取而代之。試試這個

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