有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java/processing返回ArrayList抛出:此方法必须返回ArrayList类型的结果

我有一个函数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;
  }
}

控制台打印:此方法必须返回ArrayList类型的结果

我真的不知道为什么

在另一个版本的代码中,我计算了managers的项目,以确保它不是空的,并且得到了178个与预期相同的项目

我使用Processing 1.5.1是因为我正在使用的正在展开的库


共 (2) 个答案

  1. # 1 楼答案

    你的return方法在for循环中。你必须把它移到下面一行

  2. # 2 楼答案

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

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