此问题必须更新,因为它被标记为重复,但是所有链接的问题并不完全匹配尝试问的内容:
是否有理由要求Optional.of(aNullableVar)
,因为Optional.ofNullable(aNullableVar)
在方法内部检查空指针吗?
与what Savior answered一样,目的可能类似于保护条款:
Object object = getObject();
Optional.of(object);
System.out.println(object.toString());
等效于:
Object object = getObject();
Objects.requireNonNull(object);
System.out.println(object.toString());
和
Object object = getObject();
if (object == null) {
throw new NullPointerException();
}
System.out.println(object.toString());
Java 8中的Optional.of:
public static <T> Optional<T> of(T value) {
return new Optional<>(value);
}
Optional.ofNullable在Java 8中:
public static <T> Optional<T> ofNullable(T value) {
return value == null ? empty() : of(value);
}
答案 0 :(得分:2)
Optional.of
的双重作用是用给定的非{Optional
值构造一个null
,但如果该值实际上是{{ 1}}。
这类似于做
null
因此,什么都不会真正破灭,您将发现很长时间以后,在不应该使用的情况下使用Objects.requireNonNull(value);
// and then using value
值创建了null
。