java-8 - Optional.of(null)将抛出NPE,我需要在调用该方法之前验证null吗?

标签 java-8 optional

Java 8引入了Optional处理NPE。在实际应用中,我无法理解问题。

我有方法A

public void doSomethingA(String para) {
    Optional<String> name = Optional.of(para);
    if (name.isPresent()) {
        //do
    }
}


但是,如果para = null,它将抛出NPE。

方法B

public void doSomethingB(String para) {
    if (para != null) {
        //do
    }
}


如果我检查para不为null,则A和B有什么区别。

可选的含义在哪里。

最佳答案

如果不确定是否有值,请使用Optional.ofNullable,但又不想引发NullPointerException

如果您知道自己具有非空值,或者如果抛出Optional.of可以接受,则使用NullPointerException

关于其余的问题:为什么使用nullOptional,您可能会发现以下问题有用:Optional vs. null. What is the purpose of Optional in Java 8?

您的问题还可能与以下内容有关:Why use Optional.of over Optional.ofNullable?

关于java-8 - Optional.of(null)将抛出NPE,我需要在调用该方法之前验证null吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43339331/

相关文章:

java - java中是否有最简单的reduce/fold方法?

java - jdbcTemplate setQueryTimeout 值类型

java - 对于泛型,lambda 中的错误返回类型

FORTRAN 95 : OPTIONAL statement does not work (using FTN95 and Plato)

java-8 - 如果其中的代码有任何异常,如何使用 Optional 返回空?

Java 8 嵌套流 - 转换链式 for 循环

java - 当精细头记录时将文件分割成 block (java 8)

swift - Swift中的 optional 值是什么?

json - 2 oneOf 在 json 模式 : 1 required 1 optional

scala - 为什么 "flatMap"在 Scala 中使用 Option 类型的序列?