Optional 学习笔记

Optional是Java8引入的一个容器类,用于避免NULL指针异常。它提供了一种更安全的方式来管理对象,防止因对象为NULL引发错误。Optional类包含empty()、of()、ofNullable()等方法,以及get()和isPresent()等用于检查和获取值的方法。通过使用Optional,程序员可以更好地处理缺失值,增强代码的可读性和安全性。
摘要由CSDN通过智能技术生成

Optional 类是用来存放值的容器 他在JDK8 中用避免NULL意外的操作  java程序一旦遇到异常 不进行处理就会直接中断程序  为了更好的去完善程序 Optional 就被提出 他存放的是值也就是管理对象的容器

 一.部分源码解析



 

类共享的空值容器 当需要存储NULL值容器 全类共享容器 可以节省内存消耗

   private static final Optional<?> EMPTY = new Optional<>();


  存放值的泛型变量
    

  private final T value;


 

私有构造方法 说明Optional 对象不能直接new 出 需要使用对应的Optional的方法
 

       private Optional() {
        this.value = null;
    }


 

静态方法 返回值引用的空对象实例 减少内存开销 此处使用注解警用安全检查
   

    public static<T> Optional<T> empty() {
        @SuppressWarnings("unchecked")
        Optional<T> t = (Optional<T>) EMPTY;
        return t;
    }


 

构造方法 有参构造但是权限私有无法访问
  

      private Optional(T value) {
        this.value = Objects.requireNonNull(value);
    }



 

返回储存对象的实力 但是需要之一 这个情况下会对像进行判断 如果为NULL还是会爆出异常

 public static <T> Optional<T> of(T value) {
        return new Optional<>(value);
    }

   

   如果不确定是否为空可以使用这个方法 这个方法会在内部先判断 如果为NULL则会返回 类共用的NULL值容器 如果不为NULL则会返回储存对象的单例

  

  public static <T> Optional<T> ofNullable(T value) {
        return value == null ? empty() : of(value);
    }



 获取容器的元素 如果容器储存值为空 还是会报异常 不为空则会进行返回

   

 public T get() {
        if (value == null) {
            throw new NoSuchElementException("No value present");
        }
        return value;
    }


 

这个是判断 容器值是否为空的方法 为空则返回false 不为空则返回真
 

     public boolean isPresent() {
        return value != null;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值