是否有与 SQLCOALESCE函数等效的 Java?也就是说,有没有办法返回几个变量的第一个非空值?
COALESCE
例如
Double a = null; Double b = 4.4; Double c = null;
我想以某种方式有一个语句,它将返回第一个非空值a,b和c- 在这种情况下,它将返回b, 或 4.4。(类似于 sql 方法 - return COALESCE(a,b,c))。我知道我可以通过以下方式明确地做到这一点:
a
b
c
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 ... }