java / processing return ArrayList throws:此方法必须返回Type ArrayList的结果

时间:2012-11-06 13:43:18

标签: java processing

我有这个函数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个项目,就像预期的那样。

我正在使用Processing 1.5.1,因为我正在使用Unfolding库。

2 个答案:

答案 0 :(得分:3)

您的return方法位于for循环内。你必须将它移到下面一行。

答案 1 :(得分:1)

如果countryMarkers中没有元素,您将永远不会到达return managers行,并且您的方法不会返回任何内容。

即使你知道你的容器永远不会是空的,Java编译器也不会。因此你的错误。