我有以下代码
System.out.println("" + null);
Run Code Online (Sandbox Code Playgroud)
而输出是null.
Java如何在字符串连接中发挥作用?
oxb*_*kes 24
因为Java将表达式转换"A String" + x为某些行"A String" + String.valueOf(x)
实际上我认为它可能使用StringBuilders,所以:
"A String " + x + " and another " + y
Run Code Online (Sandbox Code Playgroud)
解决方案效率更高
new StringBuilder("A String ")
.append(x)
.append(" and another ")
.append(y).toString()
Run Code Online (Sandbox Code Playgroud)
这使用了append"字符串"构建器(对于每种类型)的方法,这些方法可以null正确处理
Java StringBuilder.append( Object obj )在幕后使用.
不难想象它的实施.
public StringBuilder append( Object obj )
{
if ( obj == null )
{
append( "null" );
}
else
{
append( obj.toString( ) );
}
return this;
}
Run Code Online (Sandbox Code Playgroud)