Guava学习--------Optiional

使用Optional避免空指针异常
  • Optional用来表示可选择的,它的两个子类Present、Absent分别表示存在(not null)和不存在(null)。

    这里写图片描述

    Optional<Integer> possible = Optional.of(5);
    System.out.println( possible.isPresent() ); // true
    System.out.println( possible.get() ); // 5
  • 创建Optional对象

    • Optional.of(T):创建一个Optional对象包含给定的非空引用,如果T为null在抛出NullPointerException异常

    • Optional.absent():返回代表某种类型的Absent对象

    Optional<Long> absentLong = Optional.absent();
    absentLong.getClass().getSimpleName(); // Absent
    • Optional.fromNullable(T): 将一个可能为空的引用转换成Optional对象,如果为null,则是Absent对象;如果为not null,则是Present对象
    Optional<String> present = Optional.fromNullable("present");
    Optional<Object> absent = Optional.fromNullable(null);
    
    present.getClass().getSimpleName(); // Present
    absent.getClass().getSimpleName(); // Absent
  • 查询方法

    • boolean isPresent():如果Optional对象包含一个not null 引用则返回true;该方法是一个抽象方法,具体实现在两个子类中,Absent对象永远返回false,Present对象永远返回true
    • T get():同样是一个抽象方法,对于Present对象,返回包含的引用;对于Absent对象,抛出IllegalStateException异常
    • T or(T):对于Present对象,返回包含的引用;对于Absent对象,返回传入的参数引用
    • T orNull():对于Present对象,返回包含的引用;对于Absent对象,返回null
    • Set asSet():对于Present对象,返回SingletonSet(只包含一个元素的不可变集合);对于Absent对象,返回EmptySet(一个空集合)
  • 便捷方法(com.google.common.base.Strings)

    • String emptyToNull (String string)
    String s1 = Strings.emptyToNull(""); // 将一个空字符串转换成null引用
    s1 == null; // true
    • boolean isNullOrEmpty(String string):判断字符串是否是空串或者null

    • String nullToEmpty(String string):将null转换成一个空字符串对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值