gpt4 book ai didi

java - 为什么 String 将 null 与 + 运算符连接起来并使用 concate() 方法抛出 NullPointerException

转载 作者:搜寻专家 更新时间:2023-10-30 21:16:02 25 4
gpt4 key购买 nike

这是我的类(class),我在这里连接两个字符串。使用 + 运算符与 null 连接的字符串执行顺利,但使用 concate() 方法抛出 NullPointerException

public class Test {

public static void main(String[] args) {

String str="abc";
String strNull=null;

System.out.println(strNull+str);

str.concat(strNull);
}
}

有人能告诉我背后的原因吗??

最佳答案

案例 1:

 System.out.println(strNull+str);  // will not give you exception

来自docs (字符串转换)

If the reference is null, it is converted to the string "null" (four ASCII characters n, u, l, l).

Otherwise, the conversion is performed as if by an invocation of the toString method of the referenced object with no arguments; but if the result of invoking the toString method is null, then the string "null" is used instead.

案例 2:

str.concat(strNull);  //NullPointer exception

如果您看到 source concat(String str) 它使用 str.length(); 所以它就像 null.length() 给你一个 NullPointerException

关于java - 为什么 String 将 null 与 + 运算符连接起来并使用 concate() 方法抛出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30003211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com