I have the following code
System.out.println("" + null);
and the output is null
.
How does Java do the trick in string concatenation?
Because Java converts the expression "A String" + x
to something along the lines of "A String" + String.valueOf(x)
In actual fact I think it probably uses StringBuilder
s, so that:
"A String " + x + " and another " + y
resolves to the more efficient
new StringBuilder("A String ")
.append(x)
.append(" and another ")
.append(y).toString()
This uses the append
methods on String builder (for each type), which handle null
properly
Java uses StringBuilder.append( Object obj )
behind the scenes.
It is not hard to imagine its implementation.
public StringBuilder append( Object obj )
{
if ( obj == null )
{
append( "null" );
}
else
{
append( obj.toString( ) );
}
return this;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With