插件窝 干货文章 如何高效判断Java中多个值是否都为空或都不为空?

如何高效判断Java中多个值是否都为空或都不为空?

null String Java Optional 688    来源:    2025-03-15

在Java中,判断多个值是否都为空或都不为空可以通过多种方式实现。以下是几种常见的方法:

1. 使用 Stream API(Java 8及以上版本)

如果你使用的是Java 8或更高版本,可以使用Stream API来简洁地判断多个值是否都为空或都不为空。

import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        String str1 = null;
        String str2 = "";
        String str3 = "Hello";

        boolean allNull = Stream.of(str1, str2, str3).allMatch(s -> s == null);
        boolean allNonNull = Stream.of(str1, str2, str3).allMatch(s -> s != null);

        System.out.println("All null: " + allNull); // 输出: All null: false
        System.out.println("All non-null: " + allNonNull); // 输出: All non-null: false
    }
}

2. 使用 Objects 工具类

Objects 类提供了isNullnonNull方法,可以方便地判断对象是否为空。

import java.util.Objects;

public class Main {
    public static void main(String[] args) {
        String str1 = null;
        String str2 = "";
        String str3 = "Hello";

        boolean allNull = Objects.isNull(str1) && Objects.isNull(str2) && Objects.isNull(str3);
        boolean allNonNull = Objects.nonNull(str1) && Objects.nonNull(str2) && Objects.nonNull(str3);

        System.out.println("All null: " + allNull); // 输出: All null: false
        System.out.println("All non-null: " + allNonNull); // 输出: All non-null: false
    }
}

3. 使用 Optional

Optional 类也可以用来判断多个值是否都为空或都不为空。

import java.util.Optional;

public class Main {
    public static void main(String[] args) {
        String str1 = null;
        String str2 = "";
        String str3 = "Hello";

        boolean allNull = Optional.ofNullable(str1).isEmpty() && 
                          Optional.ofNullable(str2).isEmpty() && 
                          Optional.ofNullable(str3).isEmpty();

        boolean allNonNull = Optional.ofNullable(str1).isPresent() && 
                             Optional.ofNullable(str2).isPresent() && 
                             Optional.ofNullable(str3).isPresent();

        System.out.println("All null: " + allNull); // 输出: All null: false
        System.out.println("All non-null: " + allNonNull); // 输出: All non-null: false
    }
}

4. 手动判断

如果你不想使用任何工具类或API,也可以手动进行判断。

public class Main {
    public static void main(String[] args) {
        String str1 = null;
        String str2 = "";
        String str3 = "Hello";

        boolean allNull = (str1 == null) && (str2 == null) && (str3 == null);
        boolean allNonNull = (str1 != null) && (str2 != null) && (str3 != null);

        System.out.println("All null: " + allNull); // 输出: All null: false
        System.out.println("All non-null: " + allNonNull); // 输出: All non-null: false
    }
}

总结

  • Stream API:适用于Java 8及以上版本,代码简洁。
  • Objects 工具类:适用于Java 7及以上版本,代码简洁且易读。
  • Optional:适用于Java 8及以上版本,代码简洁且功能强大。
  • 手动判断:适用于所有Java版本,代码简单但可能不够简洁。

根据你的需求和Java版本,选择最适合的方法即可。