如果将字符串的值设置为包含对象的表达式会发生什么?

时间:2018-08-12 08:34:00

标签: java string

我想知道如果字符串的值包含一个对象会调用什么函数?

例如:

\K

它也像public class A {} A a; String str = "Hello" + a; 一样调用String.valueOf(Object)吗?

1 个答案:

答案 0 :(得分:3)

请参见jls 15.18.1. String Concatenation Operator +

  

如果只有一个操作数表达式的类型为String,则为string   对另一个操作数执行转换(第5.1.11节)以产生一个   运行时输入字符串。

jls 5.1.11. String Conversion

  

如果引用为null,则将其转换为字符串“ null”(四个   ASCII字符n,u,l,l)。

     

否则,转换就好像是通过调用   所引用对象的 toString 方法,不带参数;但是如果   调用toString方法的结果为null,然后字符串“ null”   代替。

     

toString方法由原始类Object定义   (第4.3.2节)。许多类都会覆盖它,特别是布尔值,字符,   整数,长整型,浮点型,双精度和字符串。