Optional常用方法实例, 源码挺简单的,重要的是option 与 stream 以及lamb ...

打印 上一主题 下一主题

主题 873|帖子 873|积分 2619

Optional

static methods:
  1.         Optional.ofNullable();
  2.         Optional.empty();
  3.         Optional.of();               
复制代码
​                empty():
  1. public static<T> Optional<T> empty() {
  2.         @SuppressWarnings("unchecked")
  3.         Optional<T> t = (Optional<T>) EMPTY;
  4.         return t;
  5.     //返回一个空的Optional
  6.     }
  7.     //等同于 Optional.of(null);
复制代码
​                of()
// 非null 就继续执行 否则抛异常
  1. public static <T> Optional<T> of(T value) {
  2.         return new Optional<>(Objects.requireNonNull(value));
  3.     }
  4. public static <T> T requireNonNull(T obj) {
  5.         if (obj == null)
  6.             throw new NullPointerException();
  7.         return obj;
  8.     }
复制代码
​        ofNullable()
  1. public static <T> Optional<T> ofNullable(T value) {
  2.         return value == null ? (Optional<T>) EMPTY
  3.                              : new Optional<>(value);
  4.     }
  5.     //与of 一致的原理 只是少去了抛异常
复制代码
instance methods

​                get()   //非null就get 否则异常
  1. public T get() {
  2.         if (value == null) {
  3.             throw new NoSuchElementException("No value present");
  4.         }
  5.         return value;
  6.     }
复制代码
isPresent 与 isEmpty
  1.         public boolean isPresent() {
  2.         return value != null;
  3.     }
  4.     public boolean isEmpty() {
  5.         return value == null;
  6.     }
复制代码
ifPresent

[code]public void ifPresent(Consumer
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

忿忿的泥巴坨

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表