Man*_*pal 4 java string null string-concatenation
当我执行以下代码时,输出为"nullHelloWorld".Java如何处理null?
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
String str=null;
str+="Hello World";
System.out.println(str);
}
}
Run Code Online (Sandbox Code Playgroud)
rge*_*man 12
您正在尝试将值连接到null.这由"字符串转换"控制,当一个操作数是a时发生String,并且由JLS第5.1.11节涵盖:
现在只需要考虑参考值:
- 如果引用为null,则将其转换为字符串"null"(四个ASCII字符n,u,l,l).
当您尝试null通过+运算符连接时,它实际上被String包含替换"null".
关于这一点的一个好处是,NullPointerException如果你.toString()在null变量上显式调用方法,这样就可以避免你获得的.