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
[code]public void ifPresent(Consumer |