2012-11-06 61 views
1

我有這個功能makeAirportManagers()應該返回一個ArrayList <MarkerManager>所有需要的變量map, countryMarkersairportMarkers是全局(髒處理風格)。java處理返回ArrayList拋出:此方法必須返回類型ArrayList的結果

ArrayList makeAirportManagers(){ 
    ArrayList managers = new ArrayList(); 
    for (Marker country : countryMarkers){ 
    MarkerManager currentMarkerManager = new MarkerManager(); 
    for (Marker airport : airportMarkers){ 
     Location airportLocation = airport.getLocation(); 
     ScreenPosition airportScreenPos = map.getScreenPosition(airportLocation); 
     if(country.isInside(map, airportScreenPos.x, airportScreenPos.y)){ 
     currentMarkerManager.addMarker(airport); 
     } 
    } 
    currentMarkerManager.disableDrawing(); 
    managers.add(currentMarkerManager); 
    map.addMarkerManager(currentMarkerManager); 
    airportManagersBuild = true; 
    return managers; 
    } 
} 

控制檯打印:此方法必須返回一個類型的ArrayList結果

而且真的,我不無原因!

在另一個版本的代碼中,我計算了managers的項目以確保它不是空的,並且它獲得了178個項目,就像預期的那樣。

我正在使用Processing 1.5.1,因爲我在玩Unfolding庫。

回答

3

您的return方法位於for循環內。你必須把它移到下面一行。

+0

我很盲目!非常感謝你! – PDXIII

+0

不客氣。 –

1

如果countryMarkers中沒有元素,你永遠不會到達return managers行,你的方法不會返回任何東西。

即使您知道您的容器永遠不會爲空,Java編譯器也不會。因此你的錯誤。

+0

謝謝,但'countryMarkers'不是空的。 – PDXIII

+0

你知道。不是你的編譯器。你的編譯器比你或我更加直接 – Jerome

相關問題