java取非,如何在Java中获取第一个非null值?

Is there a Java equivalent of SQL's COALESCE function? That is, is there any way to return the first non-null value of several variables?

e.g.

Double a = null;

Double b = 4.4;

Double c = null;

I want to somehow have a statement that will return the first non-null value of a, b, and c - in this case, it would return b, or 4.4. (Something like the sql method - return COALESCE(a,b,c)). I know that I can do it explicitly with something like:

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

But I wondered if there was any built-in, accepted function to accomplish this.

解决方案

No, there isn't.

The closest you can get is:

public static T coalesce(T ...items) {

for(T i : items) if(i != null) return i;

return null;

}

For efficient reasons, you can handle the common cases as follows:

public static T coalesce(T a, T b) {

return a == null ? b : a;

}

public static T coalesce(T a, T b, T c) {

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

}

public static T coalesce(T a, T b, T c, T d) {

return ...

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值