【发布时间】:2018-08-04 20:32:18
【问题描述】:
好的,很奇怪。据我所知,以前没有遇到过这个。
好的,所以编译器告诉我以下方法由于某种原因应该是无效的:
public static HashMap<String, ArrayList<FlightData>> mapper(ArrayList<String> lineBuffer) {
HashMap<String, ArrayList<FlightData>> mapdata = new HashMap<>(); //array list for Mapdata object
for (String flightData : lineBuffer) {
String[] str = flightData.split(",");
FlightData flight = new FlightData(str[0], str[1], str[2].toCharArray(), str[3].toCharArray(), new Date(Long.valueOf(str[4])), Long.valueOf(str[5]).longValue()); //creating the object
mapdata.get(flight.getFlightID()); //getting the flight data
if (mapdata.containsKey(flight.getFlightID())) { //checking if the data for the oject contains hash key Flightdata
mapdata.get(flight.getFlightID()).add(flight);
}
else if (mapdata.containsKey(flight.getFromID())) {
mapdata.get(flight.getFromID()).add(flight);
ArrayList<FlightData> noID2 = new ArrayList<>(); //creating an array for noID
noID2.add(flight);
mapdata.put(flight.getFlightID(), noID2);
}
else {
ArrayList<FlightData> noID = new ArrayList<>(); //creating an array for noID
noID.add(flight);
mapdata.put(flight.getFlightID(), noID);
// System.out.println(mapdata);
}
return mapdata;
}
这很奇怪,因为当我删除额外的 if (if else to just else) 时,它很好:
public static HashMap<String, ArrayList<FlightData>> mapper(ArrayList<String> lineBuffer) {
HashMap<String, ArrayList<FlightData>> mapdata = new HashMap<>(); //array list for Mapdata object
for (String flightData : lineBuffer) {
String[] str = flightData.split(",");
FlightData flight = new FlightData(str[0], str[1], str[2].toCharArray(), str[3].toCharArray(), new Date(Long.valueOf(str[4])), Long.valueOf(str[5]).longValue()); //creating the object
mapdata.get(flight.getFlightID()); //getting the flight data
if (mapdata.containsKey(flight.getFlightID())) { //checking if the data for the oject contains hash key Flightdata
mapdata.get(flight.getFlightID()).add(flight);
} else {
ArrayList<FlightData> noID = new ArrayList<>(); //creating an array for noID
noID.add(flight);
mapdata.put(flight.getFlightID(), noID);
}
// System.out.println(mapdata);
}
return mapdata;
}
我得到以下信息:
错误告诉我缺少返回语句/类型。因此无效的建议。任何想法为什么?
任何帮助都会很棒。
干杯, 格伦
【问题讨论】:
-
你的牙套明显不平衡。 (“显然”是指我看了代码,看到了。请看。)
-
你为什么要在 for 循环中返回?
-
因为你的return语句在for循环中
-
哈哈哈,天哪。谢谢你们。我是个白痴……不敢相信我错过了,哇。
标签: java if-statement compiler-errors void return-type