Guava 学习笔记之 Optional

详细内容请参考Google Guava官方教程(中文版)

Optional
创建Optional实例(以下都是静态方法)
方法声明描述
Optional.of(T)创建指定引用的Optional实例,若引用为null则快速失败
Optional.absent()创建引用缺失的Optional实例
Optional.fromNullable(T)创建指定引用的Optional实例,若引用为null则表示缺失
用Optional实例查询引用(以下都是非静态方法)
方法使用说明
boolean isPresent()如果Optional包含非null的引用(引用存在),返回true
T get()返回Optional所包含的引用,若引用缺失,则抛出java.lang.IllegalStateException
T or(T)返回Optional所包含的引用,若引用缺失,返回null
T orNull()创建指定引用的Optional实例,若引用为null则表示缺失
Set asSet()返回Optional所包含引用的单例不可变集,如果引用存在,返回一个只有单一元素的集合,如果引用缺失,返回一个空集合。
代码
package com.test.guava.BasicUtilities;

import com.google.common.base.Optional;

/**
 * @ClassName Optional
 * @Description TODO
 * @Author 听秋
 * @Date 2021/9/3 10:07
 * @Version 1.0
 **/
public class OptionalTest {

    public static void main(String[] args) {
        /**
         * Optional.of() 返回Optional对象,包含null抛异常
         * Optional.of().isPresent() 判断是否为null,非null返回true,null返回false
         **/
        Optional<String> possible = Optional.of("");
        System.out.println(possible.isPresent());
        Optional<Integer> possible1 = Optional.of(5);
        System.out.println(possible1.isPresent());
        Optional<Integer> possible2 = null;
        try {
            Optional.of(null);
        } catch (Exception e) {
            System.out.println("possible2包含null");
        }

        /**
         * Optional.fromNullable 返回Optional对象,包含null不抛异常
         **/
        Optional<Integer> possible3 = Optional.fromNullable(5);
        System.out.println(possible3.isPresent());
        System.out.println(possible3.get());
        Optional<Integer> possible4 = Optional.fromNullable(null);
        System.out.println(possible4.isPresent());
        try {
            possible4.get(); // 包含null抛异常
        } catch (Exception e) {
            System.out.println("possible4包含null");
        }

        /**
         * Optional.or() 非null返回指定值,null返回默认值
         **/
        Optional<Integer> possible5 = Optional.fromNullable(5);
        System.out.println(possible5.or(3));
        Optional<Integer> possible6 = Optional.fromNullable(null);
        System.out.println(possible6.or(3));

        /**
         * Optional.absent() 创建一个空对象
         **/
        Optional<Integer> possible7 = Optional.absent();
        System.out.println(possible7.isPresent());

        /**
         * Optional.orNull() 返回指定值,缺失返回null
         **/
        Optional<Integer> possible8 = Optional.fromNullable(5);
        System.out.println(possible8.orNull());
        Optional<Integer> possible9 = Optional.fromNullable(null);
        System.out.println(possible9.orNull());
        Optional<Integer> possible10 = Optional.absent();
        System.out.println(possible10.orNull());

        /**
         * Optional.asSet() 返回单一元素集合,null则返回空集合
         **/
        Optional<Integer> possible11 = Optional.fromNullable(5);
        System.out.println(possible11.asSet());
        Optional<Integer> possible12 = Optional.fromNullable(null);
        System.out.println(possible12.asSet());
    }
}
运行结果
true
true
possible2包含null
true
5
false
possible4包含null
5
3
false
5
null
null
[5]
[]

Process finished with exit code 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

久违の欢喜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值