1

我有这个函数makeAirportManagers(),它应该返回ArrayList <MarkerManager>所有必需的变量map, countryMarkers并且airportMarkers是全局的(肮脏的处理方式)。

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 库。

4

2 回答 2

3

您的return方法在for循环内。您必须将它移到下一行。

于 2012-11-06T13:44:39.833 回答
1

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

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

于 2012-11-06T13:45:03.570 回答