Java仅在循环内返回值

RnD*_*RnD 0 java methods

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

public CustomerDetails findCustomer( String givenID ) throws CustomerNotFoundException{
    for(CustomerDetails nextCustomer : customers){
        if(givenID == nextCustomer.getCustomerID()){
            return nextCustomer;
        }else{
            throw new CustomerNotFoundException();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但它需要我在方法的底部添加一个return语句.有没有办法忽略这个?

Kon*_*kov 6

它要求您在循环未执行时(即为customers空)从方法中提供有效结果.你必须这样做:

for (CustomerDetails nextCustomer : customers){
    if (givenID == nextCustomer.getCustomerID()){
        return nextCustomer;
    }
}
throw new CustomerNotFoundException();
Run Code Online (Sandbox Code Playgroud)

因为否则你会在不符合条件中提供的条件的第一个元素之后抛出异常if.