我想知道使用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 the function. I have similar codes in my class and to reduce complexity I want 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/