如果我们将Optional.of方法设置为私有,并且只允许在Java中使用Optional.of方法;除了向后兼容性,还会有其他问题吗?
此问题必须更新,因为它被标记为重复,但所有链接的问题都不完全匹配尝试提问的内容: 是否有理由认为Optional.OfNullableVar是必需的,因为Optional.OfNullableVar检查方法内部的空指针 如前所述,目的可能类似于保护条款:如果我们将Optional.of方法设置为私有,并且只允许在Java中使用Optional.of方法;除了向后兼容性,还会有其他问题吗?,java,java-8,nullpointerexception,null,optional,Java,Java 8,Nullpointerexception,Null,Optional,此问题必须更新,因为它被标记为重复,但所有链接的问题都不完全匹配尝试提问的内容: 是否有理由认为Optional.OfNullableVar是必需的,因为Optional.OfNullableVar检查方法内部的空指针 如前所述,目的可能类似于保护条款: Object object = getObject(); Optional.of(object); System.out.println(object.toString()); 这相当于: Object object = getObject(
Object object = getObject();
Optional.of(object);
System.out.println(object.toString());
这相当于:
Object object = getObject();
Objects.requireNonNull(object);
System.out.println(object.toString());
及
Java 8中的可选.of:
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);
}
Java 8中可选的.ofNullable:
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);
}
Optional.of的双重用途是使用给定的非null值构造Optional,但如果该值实际为null,则也会很快失败
这类似于
Objects.requireNonNull(value);
// and then using value
所以并没有什么会真正中断,你们会在很久以后发现你们用了一个空值来创建那个可选的,而你们不应该这样做。定义问题。除了?这是一个很大的问题,除了java世界