Pregunta

Tengo cuatro variables y quiero comprobar si alguna de ellas es nula. Puedo hacer

if (null == a || null == b || null == c || null == d) {
    ...
}

pero lo que realmente quiero es

if (anyNull(a, b, c, d)) {
    ...
}

pero no quiero escribirlo yo mismo. ¿Existe esta función en alguna biblioteca común de Java? Revisé Commons Lang y no lo vi. Debería usar varargs para tomar cualquier número de argumentos.

¿Fue útil?

Solución

Lo mejor que puedes hacer con la biblioteca de Java es, creo:

if (asList(a, b, c, d).contains(null)) {

Otros consejos

No sé si está en los comunes, pero tarda unos diez segundos en escribir:

public static boolean anyNull(Object... objs) {
    for (Object obj : objs)
        if (obj == null)
            return true;
    return false;
}

Usted preguntó en los comentarios dónde colocar el ayudante estático, sugiero

public class All {
    public static final boolean notNull(Object... all) { ... }
}

y luego use el nombre calificado para la llamada, como

assert All.notNull(a, b, c, d);

Lo mismo se puede hacer con una clase Cualquiera y métodos como isNull .

En Java 8 puedes hacerlo de una manera aún más elegante:

if (Stream.of(a, b, c, d).anyMatch(Objects::isNull)) { ... }

o puedes extraerlo a un método:

public static boolean anyNull(Object... objects) {
    return Stream.of(objects).anyMatch(Objects::isNull);
}

y luego úsalo en tu código como este:

if (anyNull(a, b, c, d)) { ... }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top