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:
For efficient reasons, you can handle the common cases as follows:
The efficiency reason is that an array allocation will happen each time you invoke the
...version of the method. This could be wasteful for hand-fulls of items, which I suspect will be common usage.