jdk1.8新特性Optional代码比较直观简洁好看,但是使用Optional的方法时都会创建Optional实例对象,消耗内存资源,有点鸡肋
Optional方法源码:
private static final Optional<?> EMPTY = new Optional<>();
public static<T> Optional<T> empty() {
@SuppressWarnings("unchecked")
Optional<T> t = (Optional<T>) EMPTY;
return t;
}
public static <T> Optional<T> of(T value) {
return new Optional<>(value);
}
public static <T> Optional<T> ofNullable(T value) {
return value == null ? empty() : of(value);
}
直观用法:
if(null == str) { // 空指针判定
return 0;
}
return str.length();
return Optional.ofNullable(str).map(String::length).orElse(0);
个人观点:
虽然代码比较直观简洁好看,但是使用Optional的方法时都会创建Optional实例对象,消耗内存资源,有点鸡肋;