gpt4 book ai didi

java - 有没有更好的方法来处理 Java 中的多个 null 检查?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:46:41 25 4
gpt4 key购买 nike

我有以下代码

Set<Product> getallProducts(){

Product p = getProduct(brand, price);
Product p1 = getProduct(brand, price, location);
Product p2 = getProduct(brand, price, qty);

Set<SuperProducts> superProducts = new HashSet<>;


if(p!=null){
SuperProduct sp = getSuperProduct(p)
superProducts.add(sp)
}

if(p1!=null){
SuperProduct sp1 = getSuperProduct(p1)
superProducts.add(sp)

}

if(p2!=null){
SuperProduct sp2 = getSuperProduct(p2)
superProducts.add(sp2)

}
}

是否有明确的方法来处理 p!=null、p2!=null、p1 !=null。我可以将 p、p1、p2 添加到列表中并按以下方式遍历它 但我一直在寻找一种比将产品添加到列表中然后遍历它们更便宜的方法。?另外,我想知道每次检查 null 是否比添加到列表并遍历它更昂贵?

List<Product> products = new ArrayList<>():
products.add(p);
products.add(p1);
products.add(p2);

and
for(Product p:products){
// and adding to superProducts
}

最佳答案

你可以去Stream.of然后filter作为:

return Stream.of(p1, p2, p3).filter(Objects::nonNull)
.map(this::getSuperProduct)
.collect(Collectors.toSet());

关于java - 有没有更好的方法来处理 Java 中的多个 null 检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56099903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com