Java 如何编写函数首先返回非null的值,否则返回null

Java 如何编写函数首先返回非null的值,否则返回null,java,function,Java,Function,如何编写以下函数: public Object getFirstNotNull(Object... objects){ //return first that is not null //otherwise return null } 对于所有对象s,是否有其他方法,除非if else if。只要执行for循环,并在找到非空对象时返回 for (Object obj : objects) { if (obj != null) { return obj;

如何编写以下函数:

public Object getFirstNotNull(Object... objects){
    //return first that is not null
    //otherwise return null
}

对于所有
对象
s,是否有其他方法,除非
if else if

只要执行for循环,并在找到非空对象时返回

for (Object obj : objects) {
    if (obj != null) {
        return obj;
    }
}
return null;

只需使用for循环,如下所示:

public Object getFirstNotNull(Object... objects){
  for(Object obj:objects){
     if (obj != null) {
       return obj;
     }
  }
  return null;
}
在Java8中,您可以

public static <T> T getFirst(T... ts) {
    return Stream.of(ts).filter(Objects::nonNull).findFirst().orElse(null);
}
公共静态T getFirst(T…ts){
返回Stream.of(ts).filter(Objects::nonNull).findFirst().orElse(null);
}

你可以使用循环?这有什么意义?请注意,如果你有Apache Commons,你可以使用
ObjectUtils.firstNonNull
。他不是在试图避免
if
语句吗?@I.K.我相信OP的意思是避免if语句检查每个对象。最后返回null(没有否决)@ArnonZilca补充道。这个答案和4分钟后已经出现的答案有什么不同?我是用移动设备添加的。所以当我开始写答案时,并没有答案@Jean-François Savard:the
返回null语句。
.filter(Objects::nonNull)
@Holger感谢您的添加。