ToB企服应用市场:ToB评测及商务社交产业平台

标题: Optional常用方法实例, 源码挺简单的,重要的是option 与 stream 以及lamb [打印本页]

作者: 忿忿的泥巴坨    时间: 2024-2-3 23:44
标题: Optional常用方法实例, 源码挺简单的,重要的是option 与 stream 以及lamb
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




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4