Java中的条件运算符抛出意外的NullPointerException

bluesky1年前 ⋅ 160 阅读

ChatGPT的回答仅作参考:

在Java中,条件运算符(?:)可以用于简化if-else语句的写法。但是,如果条件运算符的表达式中包含了一个可能为null的对象,就有可能抛出NullPointerException异常。

例如,下面的代码中,如果变量str为null,那么在执行条件运算符时就会抛出NullPointerException异常:

String str = null;
String result = str != null ? str : "default";

为了避免这种异常的发生,可以使用if-else语句来代替条件运算符,或者在条件运算符中使用安全调用操作符(?.)来避免空指针异常的发生:

String str = null;
String result = str != null ? str : "default"; // 抛出NullPointerException异常

// 使用if-else语句代替条件运算符
String result;
if (str != null) {
    result = str;
} else {
    result = "default";
}

// 使用安全调用操作符避免空指针异常
String result = str?.toUpperCase() != null ? str.toUpperCase() : "default";

全部评论: 0

    相关推荐