1

必要なすべての変数をmakeAirportManagers()返す必要があり、グローバルなこの関数があります(ダーティ処理スタイル)。ArrayList <MarkerManager>map, countryMarkersairportMarkers

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;
  }
}

コンソールに次のように出力されます。このメソッドは、Type ArrayList の結果を返す必要があります

そして、本当に私は理由を知りません!

コードの別のバージョンでは、アイテムがmanagers空でないことを確認するためにアイテムを数え、期待どおりに 178 アイテムを取得します。

Unfolding ライブラリを使用しているため、Processing 1.5.1 を使用しています。

4

2 に答える 2

3

メソッドreturnforループ内にあります。1 行下に移動する必要があります。

于 2012-11-06T13:44:39.833 に答える
1

countryMarkers に要素が含まれていない場合、行に到達することはなくreturn managers、メソッドは何も返しません。

コンテナーが空にならないことがわかっていても、Java コンパイラーはそうしません。したがって、あなたのエラー。

于 2012-11-06T13:45:03.570 に答える