Devuelve el primer valor no nulo

Tengo varias funciones:

String first(){}
String second(){}
...
String default(){}

Cada uno puede devolver un valor nulo, excepto el predeterminado.Cada función puede tomar diferentes parámetros. Por ejemplo, el primero no podría tomar argumentos, el segundo podría tomar una Cadena, el tercero podría tomar tres argumentos, etc. Lo que me gustaría hacer es algo como:

ObjectUtils.firstNonNull(first(), second(), ..., default());

El problema es que debido a la llamada a la función,esto hace una evaluación entusiasta. ¿Dónde me gustaría salir temprano? digamos después de la segunda función (porque las llamadas a funciones pueden ser costosas, piense en las llamadas a la API, etc.). En otros idiomas, puede hacer algo similar a esto:

return first() || second() || ... || default()

En Java, sé que puedo hacer algo como:

String value;
if (value = first()) == null || (value = second()) == null ...
return value;

Eso no es muy legible IMO debido a todas las == comprobaciones nulas.ObjectUtils.firstNonNull () primero crea una colección y luego itera, lo cual está bien siempre que la función se evalúe de manera perezosa.

Sugerencias? (además de hacer un montón de ifs)

Respuestas a la pregunta(7)

Su respuesta a la pregunta