如何获取Java中的第一个非空值?

有没有Java的COALESCE函数的Java等价物?也就是说,有没有办法返回几个变量的第一个非空值?

例如

Double a = null;
Double b = 4.4;
Double c = null;

我想以某种方式有一个语句,将返回a,b和c的第一个非空值 – 在这种情况下,它将返回b或4.4。 (类似于sql方法 – 返回COALESCE(a,b,c))。我知道我可以明确地用类似的东西:

return a != null ? a : (b != null ? b : c)

但我想知道是否有任何内置的,接受的功能来完成这一点。

不,没有。

你可以得到的最接近是:

public static <T> T coalesce(T ...items) {
    for(T i : items) if(i != null) return i;
    return null;
}

出于有效的原因,您可以处理以下常见情况:

public static <T> T coalesce(T a, T b) {
    return a == null ? b : a;
}
public static <T> T coalesce(T a, T b, T c) {
    return a != null ? a : (b != null ? b : c);
}
public static <T> T coalesce(T a, T b, T c, T d) {
    return ...
}
http://stackoverflow.com/questions/2768054/how-to-get-the-first-non-null-value-in-java

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:如何获取Java中的第一个非空值?