public class Schedule {
ArrayList<Flight> flightList = new ArrayList();
java.util.Date date = new java.util.Date();
public Schedule() {
flightList = new ArrayList(flightList);
this.date.getTime();
}
public Flight findFlight(String num){
for (Flight flight: flightList)
if (flight.getFlightnum().equals(num)){
return flight;}
else
return null;
}
findFlight这个方法,总是显示我的return类型有错误.明明是匹配的了,这是为啥呢?
你这段代码就是一个很简单的遍历查找过程,找不到应该是遍历完整个List后才返回null的,所以你的else分支没有意义的。
Eclipse的自动修复功能ctrl+1显示可以直接在else分支后面return null。但是这样就会不合逻辑,如果你的num号的Flight对象不是列表中的第一个,那么你的代码永远都是进入了else分支返回null的。
所以正确的代码是:去掉else分支,最后for循环完成后仍没有找到才是return null.
public Flight findFlight(String num){
for (Flight flight: flightList)
//找到就返回
if (flight.getFlightnum().equals(num)){
return flight;
}
}
//for循环结束仍然没有找到则返回null
return null;
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。