在Java中,判断一个对象是否为空通常使用 `== null` 进行比较。但是吧,对于不同类型的数据,判断空值的方法是不同的,下面,上案例:
1. 对象引用:使用 `== null` 或 `.equals(null)` 来检查对象引用是否指向空。
Object obj = null;
if (obj == null) {
System.out.println("obj is null");
}
2. 字符串:字符串可能为空字符串(即 "") 或者为null。可以使用 `.isEmpty()` 方法来检查字符串是否为空(不包含任何字符),使用 `== null` 或 `.equals(null)` 来检查字符串是否为null。
String str = null;
if (str == null || str.isEmpty()) {
System.out.println("str is null or empty");
}
3. 集合:对于集合类型(如 `List`, `Set`, `Map` 等),可以使用 `.isEmpty()` 方法来检查集合是否为空(不包含任何元素)。
List<String> list = new ArrayList<>();
if (list.isEmpty()) {
System.out.println("list is empty");
}
4. 数组:可以使用 `.length` 属性来检查数组是否为空(长度为0),或者使用 `== null` 来检查数组引用是否为null。
String[] array = null;
if (array == null || array.length == 0) {
System.out.println("array is null or empty");
}
5. 其他基础数据类型:对于其他基础数据类型(如 `int`, `double`, `boolean` 等),它们没有对应的“空”概念,但你可以检查它们是否取了某个特定的值,例如检查 `boolean` 是否为 `false`。
6. Optional:Java 8引入了 `Optional` 类型,用于封装可能为null的值。可以使用 `.isPresent()` 方法来检查 `Optional` 是否包含一个非null的值。
Optional<String> optional = Optional.ofNullable(str);
if (optional.isPresent()) {
System.out.println("optional has a value");
}
注意了,对于字符串和集合类型,`null` 和 “空” 是两个不同的概念。`null` 表示没有引用任何对象,而“空”表示引用了一个空的或空无一物的对象。在写代码时,应该根据上下文来决定使用哪种检查方式。
作者:鱼哥很忙
链接:鱼哥很忙
著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。