首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >只从循环中返回值

只从循环中返回值
EN

Stack Overflow用户
提问于 2015-02-25 13:24:51
回答 6查看 78关注 0票数 0

我有一个方法,如果找到,我需要返回一个特定的对象,否则会抛出一个异常。所以我写了如下:

代码语言:javascript
复制
public CustomerDetails findCustomer( String givenID ) throws CustomerNotFoundException{
    for(CustomerDetails nextCustomer : customers){
        if(givenID == nextCustomer.getCustomerID()){
            return nextCustomer;
        }else{
            throw new CustomerNotFoundException();
        }
    }
}

但是它要求我在方法的底部添加一个返回语句。有什么办法可以忽略这一点吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2015-02-25 13:26:40

它要求您在没有执行循环(即customers为空)的情况下,从方法中提供一个有效的结果。你必须这样做:

代码语言:javascript
复制
for (CustomerDetails nextCustomer : customers){
    if (givenID == nextCustomer.getCustomerID()){
        return nextCustomer;
    }
}
throw new CustomerNotFoundException();

否则,您将在不满足if中提供的条件的第一个元素之后抛出异常。

票数 6
EN

Stack Overflow用户

发布于 2015-02-25 13:26:22

将代码更改为:

代码语言:javascript
复制
public CustomerDetails findCustomer( String givenID ) throws CustomerNotFoundException{
    for(CustomerDetails nextCustomer : customers){
        if(givenID == nextCustomer.getCustomerID()){
            return nextCustomer;
        }
    }
    throw new CustomerNotFoundException();
}
票数 3
EN

Stack Overflow用户

发布于 2015-02-25 13:29:05

如果找到对象,可以返回它。如果找不到它,则在循环结束时抛出一个异常:

代码语言:javascript
复制
public CustomerDetails findCustomer( String givenID ) throws CustomerNotFoundException{
    for(CustomerDetails nextCustomer : customers){
        if(givenID.equals(nextCustomer.getCustomerID())){
            return nextCustomer;
       }
    }
       throw new CustomerNotFoundException();
}

请注意。您可以将strings==进行比较。这里您必须使用equals方法!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28720182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档