开发者社区> 问答> 正文

为什么这个JAVA实例方法总是显错?

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类型有错误.明明是匹配的了,这是为啥呢?

展开
收起
蛮大人123 2016-03-23 17:45:18 2202 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    你这段代码就是一个很简单的遍历查找过程,找不到应该是遍历完整个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;
        } 
    2019-07-17 19:11:36
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载