gpt4 book ai didi

java - 使用Optional.ofNullable()简化条件

转载 作者:行者123 更新时间:2023-12-02 18:57:45 25 4
gpt4 key购买 nike

我想知道使用Optional.ofNullable()是否有退出

for(String name: names){
if(name != null)
person = "Mr./Mrs."+name;
else
continue;
greeting(person);
}

我的代码如上面所示。我想在调用函数之前检查参数。我的类中有类似的代码,为了降低复杂性,我想使用 Optional.Nullable()

有没有办法在这里应用Optional.Nullable()?或者是否有另一种方法可以帮助我降低多个 if 检查来检查 null 变量的复杂性?提前致谢。

最佳答案

My code is like above. I want to check the argument before calling thefunction. I have similar codes in my class and to reduce complexity Iwant to use Optional.Nullable().

根据您给定的上下文,您有多种选择:

方法 1:重新排列条件

  for(String name: names){
if(name != null) {
person = "Mr./Mrs." + name;
greeting(person);
...
}
}

或:

    for(String name: names){
if(name == null)
continue;
person = "Mr./Mrs." + name;
greeting(person);
...
}

方法 2:使用可选

for(String name: names){     
Optional.ofNullable(name)
.map("Mr/Mrs"::concat)
.ifPresent(YourClass::greeting);
}

YourClass 只是定义方法 greeting 的类的占位符。

方法 3:使用流

假设 name 是一个 Collection,那么您实际上最好使用 Java Streams,即:

names.stream()
.filter(Objects::nonNull)
.forEach(name -> greeting("Mr./Mrs."+name));

如果名称是一个String数组,那么你可以这样做:

Arrays.stream(names)
.filter(Objects::nonNull)
.forEach(name -> greeting("Mr./Mrs."+name));

关于java - 使用Optional.ofNullable()简化条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65955626/

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