Java 判断对象空的方法

104 篇文章 0 订阅
32 篇文章 0 订阅

Java 判断对象空的方法

一、使用 == 或者 equals()比较

==

str == "";
str == null;

equals()

"".equals(str)
//不推荐判断null
String str = null;
str2.equals(str);

注意

java中对equals的定义: 对于任何非空引用值 x,x.equals(null) 都应返回 false;
使用equals()判断对象null,会出现java.lang.NullPointerException异常
对于null
1.null是任何引用类型的默认值,不严格的说是所有object类型的默认值。这对所有变量都是适用的,如成员变量、局部变量、实例变量、静态变量;
2.null是任何一个引用类型变量的默认值,在java中不能使用null引用来调用任何的instance方法或者instance变量。

自定义方法

 public static boolean isNull(Object object){
        if (null == object) {
            return true;
        }
        if ((object instanceof String)){
            return "".equals(((String)object).trim());
        }
        return false;
    }

二、StringUtils.isBlank(String str)

StringUtils.isBlank(String str) 判断某字符串是否为空或长度为0或由空白符(whitespace) 构成

StringUtils.isBlank(str);
//
System.out.println(StringUtils.isBlank(null));        //true
System.out.println(StringUtils.isBlank(""));          //true
System.out.println(StringUtils.isBlank("   "));       //true

三、StringUtils.isEmpty(String str)

StringUtils.isEmpty(String str) 判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0

StringUtils.isEmpty(str);
//
System.out.println(StringUtils.isEmpty(null));        //true
System.out.println(StringUtils.isEmpty(""));          //true
System.out.println(StringUtils.isEmpty("   "));       //false

注意:

StringUtils.isNotEmpty(String str) 等价于 !isEmpty(String str)

四、Optional(T value),empty(),of(T value),ofNullable(T value)

JDK 8 新方法**

1.Optional.of(T value)
该方法通过一个非 null 的 value 来构造一个 Optional,返回的 Optional 包含了 value 这个值。对于该方法,传入的参数一定不能为 null,否则便会抛出 NullPointerException。

//of(T value)
Optional<String> str = Optional.of("");
//传入参数为null,抛出NullPointerException.
Optional<String> strNull = Optional.of(null);

2.Optional.ofNullable(T value)
Optional.ofNullable(T value):若 value 不为 null,创建 Optional 实例,否则创建空实例
该方法和 of 方法的区别在于,传入的参数可以为 null

public static <T> Optional<T> ofNullable(T value) {
	//进行三目运算,判断传入的参数是否为 null,如果为 null 的话,返回的就是 Optional.empty()。
    return value == null ? empty() : of(value);
}


Optional<String> nullableOpt = Optional.ofNullable(str);

3.Optional.empty()
该方法用来构造一个空的 Optional,即该 Optional 中不包含值 —— 其实底层实现还是 如果 Optional 中的 value 为 null 则该 Optional 为不包含值的状态,然后在 API 层面将 Optional 表现的不能包含 null 值,使得 Optional 只存在 包含值 和 不包含值 两种状态。

//empty() :用于创建一个没有值的Optional对象:
Optional<String> emptyOpt = Optional.empty();

Optional判空


//判空写
Optional.ofNullable(变量).orElse(默认值);
//循环遍历集合
List<String> list = getList();
Optional.ofNullable(list).orElse(new ArrayList<>()).forEach(o -> {
      System.out.println(o);
});

使用orElse方法设置默认值,Optional类还包含其他方法用于获取值:
orElse():如果有值就返回,否则返回一个给定的值作为默认值;
orElseGet():与orElse()方法作用类似,区别在于生成默认值的方式不同。该方法接受一个Supplier<? extends T>函数式接口参数,用于生成默认值;
orElseThrow():与前面介绍的get()方法类似,当值为null时调用这两个方法都会抛出NullPointerException异常,区别在于该方法可以指定抛出的异常类型。

扩展

判断Null:
isPresent():如果创建的对象实例为非空值的话,isPresent()返回true,调用get()方法会返回该对象,如果没有值,调用isPresent()方法会返回false,调用get()方法抛出NullPointerException异常。
使用filter()方法过滤
filter()方法可用于判断Optional对象是否满足给定条件,一般用于条件过滤,在代码中,如果filter()方法中的Lambda表达式成立,filter()方法会返回当前Optional对象值,否则,返回一个值为空的Optional对象。

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值