忿忿的泥巴坨 发表于 2024-2-3 23:44:47

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

Optional

static methods:

        Optional.ofNullable();
      Optional.empty();
      Optional.of();                ​                empty():
public static<T> Optional<T> empty() {
      @SuppressWarnings("unchecked")
      Optional<T> t = (Optional<T>) EMPTY;
      return t;
    //返回一个空的Optional
    }
    //等同于 Optional.of(null);​                of()
// 非null 就继续执行 否则抛异常
public static <T> Optional<T> of(T value) {
      return new Optional<>(Objects.requireNonNull(value));
    }

public static <T> T requireNonNull(T obj) {
      if (obj == null)
            throw new NullPointerException();
      return obj;
    }​        ofNullable()
public static <T> Optional<T> ofNullable(T value) {
      return value == null ? (Optional<T>) EMPTY
                           : new Optional<>(value);
    }
    //与of 一致的原理 只是少去了抛异常instance methods

​                get()   //非null就get 否则异常
public T get() {
      if (value == null) {
            throw new NoSuchElementException("No value present");
      }
      return value;
    }isPresent 与 isEmpty

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

public void ifPresent(Consumer
页: [1]
查看完整版本: Optional常用方法实例, 源码挺简单的,重要的是option 与 stream 以及lamb