我有这个函数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库。
答案 0 :(得分:3)
您的return
方法位于for
循环内。你必须将它移到下面一行。
答案 1 :(得分:1)
如果countryMarkers中没有元素,您将永远不会到达return managers
行,并且您的方法不会返回任何内容。
即使你知道你的容器永远不会是空的,Java编译器也不会。因此你的错误。