在Java中,判断多个值是否同时为空或非空可以通过多种方式实现。以下是几种高效的方法:
Stream
API如果你有一组对象,可以使用 Stream
API 来判断它们是否都为空或都非空。
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
public class Main {
public static void main(String[] args) {
String str1 = null;
String str2 = "Hello";
String str3 = "World";
List<String> strings = Arrays.asList(str1, str2, str3);
// 判断所有值是否都为空
boolean allNull = strings.stream().allMatch(Objects::isNull);
System.out.println("All null: " + allNull); // 输出: All null: false
// 判断所有值是否都非空
boolean allNonNull = strings.stream().allMatch(Objects::nonNull);
System.out.println("All non-null: " + allNonNull); // 输出: All non-null: false
}
}
Objects
类的 isNull
和 nonNull
方法如果你只有几个值,可以直接使用 Objects.isNull
和 Objects.nonNull
方法来判断。
import java.util.Objects;
public class Main {
public static void main(String[] args) {
String str1 = null;
String str2 = "Hello";
String str3 = "World";
// 判断所有值是否都为空
boolean allNull = Objects.isNull(str1) && Objects.isNull(str2) && Objects.isNull(str3);
System.out.println("All null: " + allNull); // 输出: All null: false
// 判断所有值是否都非空
boolean allNonNull = Objects.nonNull(str1) && Objects.nonNull(str2) && Objects.nonNull(str3);
System.out.println("All non-null: " + allNonNull); // 输出: All non-null: false
}
}
Optional
类如果你想要更优雅地处理空值,可以使用 Optional
类。
import java.util.Optional;
public class Main {
public static void main(String[] args) {
String str1 = null;
String str2 = "Hello";
String str3 = "World";
// 判断所有值是否都为空
boolean allNull = Optional.ofNullable(str1).isEmpty() &&
Optional.ofNullable(str2).isEmpty() &&
Optional.ofNullable(str3).isEmpty();
System.out.println("All null: " + allNull); // 输出: All null: false
// 判断所有值是否都非空
boolean allNonNull = Optional.ofNullable(str1).isPresent() &&
Optional.ofNullable(str2).isPresent() &&
Optional.ofNullable(str3).isPresent();
System.out.println("All non-null: " + allNonNull); // 输出: All non-null: false
}
}
varargs
方法如果你有多个值并且想要一个通用的方法来判断它们是否都为空或都非空,可以使用 varargs
方法。
import java.util.Objects;
public class Main {
public static void main(String[] args) {
String str1 = null;
String str2 = "Hello";
String str3 = "World";
// 判断所有值是否都为空
boolean allNull = areAllNull(str1, str2, str3);
System.out.println("All null: " + allNull); // 输出: All null: false
// 判断所有值是否都非空
boolean allNonNull = areAllNonNull(str1, str2, str3);
System.out.println("All non-null: " + allNonNull); // 输出: All non-null: false
}
public static boolean areAllNull(Object... objects) {
for (Object obj : objects) {
if (obj != null) {
return false;
}
}
return true;
}
public static boolean areAllNonNull(Object... objects) {
for (Object obj : objects) {
if (obj == null) {
return false;
}
}
return true;
}
}
Stream
API 是最简洁的方式。Objects.isNull
和 Objects.nonNull
方法即可。Optional
类。varargs
方法。根据你的具体需求选择合适的方法即可。