Frage

Ich habe vier Variablen, und ich möchte überprüfen, ob einer von ihnen null ist. Ich kann tun,

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

, aber was ich wirklich will, ist

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

, aber ich will nicht, es selbst zu schreiben. Gibt es diese Funktion in allen gängigen Java-Bibliothek? Ich habe Commons Lang und habe es nicht gesehen. Es sollte varargs verwenden beliebige Anzahl von Argumenten zu übernehmen.

War es hilfreich?

Lösung

Das Beste, was Sie mit der Java-Bibliothek ist zu tun, denke ich:

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

Andere Tipps

Ich weiß nicht, ob es in commons, aber es dauert etwa 10 Sekunden zu schreiben:

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

Sie haben gefragt, in den Kommentaren, wo die statischen Helfer zu setzen, schlage ich vor,

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

und verwenden Sie dann den qualifizierten Namen für Anruf, wie

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

Das gleiche kann dann mit einer Klasse Any und Methoden wie isNull erfolgen.

In Java 8 können Sie es tun in noch eleganter Art und Weise:

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

oder Sie können es auf ein Verfahren extrahieren:

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

und verwenden Sie es dann in Ihrem Code wie folgt aus:

if (anyNull(a, b, c, d)) { ... }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top