簡體   English   中英

Java 或 ZE9713AE04A052A8107D6F3 中是否有可變參數 null 檢查 function

[英]Is there a varargs null check function in Java or Apache Commons?

我有四個變量,我想檢查其中是否有一個是 null。 我可以

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

但我真正想要的是

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

但我不想自己寫。 這個 function 是否存在於任何常見的 Java 庫中? 我檢查了 Commons Lang 並沒有看到它。 它應該使用可變參數來獲取任意數量的 arguments。

不知道是不是公用的,但是大概需要十秒的時間來寫:

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

我認為使用 Java 庫可以做的最好的事情是:

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

您在評論中詢問將 static 助手放在哪里,我建議

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

然后使用限定名進行調用,如

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

然后可以使用 class AnyisNull之類的方法來完成相同的操作。

在 Java 8 中,您可以以更優雅的方式進行操作:

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

或者您可以將其提取到一個方法中:

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

然后在你的代碼中使用它,如下所示:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM