Optional常用方法实例, 源码挺简单的,重要的是option 与 stream 以及lamb
Optionalstatic 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]