java/processing返回ArrayList抛出:此方法必须返回ArrayList类型的结果
我有一个函数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;
}
}
控制台打印:此方法必须返回ArrayList类型的结果
我真的不知道为什么
在另一个版本的代码中,我计算了managers
的项目,以确保它不是空的,并且得到了178个与预期相同的项目
我使用Processing 1.5.1是因为我正在使用的正在展开的库
# 1 楼答案
你的
return
方法在for
循环中。你必须把它移到下面一行# 2 楼答案
如果countryMarkers中没有元素,您将永远无法到达
return managers
行,并且您的方法将不会返回任何内容即使您知道容器永远不会为空,Java编译器也不会。这就是你的错误