首页 > 解决方案 > 如何将对象带出for循环

问题描述

如果它的名称属性与输入字符串匹配,我有以下方法应该返回一个产品对象。

public Product find(String nameInput){  
 for(Product product : this.Products){           
        if(product.getName().equalsIgnoreCase(nameInput)){
            return product;                        
        }     
   }
}

它给了我以下错误:

在此处输入图像描述

我知道我可以在方法结束时返回 null,但是有没有更优雅的方法来做到这一点?

标签: javaobjectfor-loopreturn

解决方案


您可以使用streamfindFirst返回Optional第一个匹配Product或空Optional

this.Products.stream()
             .filter(p->p.getName().equalsIgnoreCase(nameInput))
             .findFirst();

您还可以使用orElse方法Optional返回默认值


推荐阅读