当 println() 正在显示一个对象时,println() 调用了哪个对象方法?
when println() is displaying an Object, which one of the Objects methods does println() call?
当 println()
显示 Object
时,Object
中的哪一个
println()
调用的方法?
- 添加()
- toString()
- 等于()
- compareTo()
- 字符串()
我不确定是 toString
还是 String
有人可以澄清一下吗?
None 个。
如果您将对象传递给 println()
this
println(Object o)
将被调用,实际上调用 String.valueOf(o)
。
但是如果 o 不为空,String.valueOf(o)
会调用 o.toString()
。
所以你可以间接地说它 toString()
。
当使用签名 println(Object) 时,toString() 方法用于输出该对象的字符串表示形式。
当在您定义的对象上调用 toString() 时,它会级联 superclasses 的层次结构,直到达到 java.lang.Object,因为在任何中间超级classes 或初始class。到达 java.lang.Object 后,系统将调用基本 toString() 方法,该方法打印该对象的字符串文字表示,这就是为什么您会在输出中看到一些内存地址的原因。
当 println()
显示 Object
时,Object
中的哪一个
println()
调用的方法?
- 添加()
- toString()
- 等于()
- compareTo()
- 字符串()
我不确定是 toString
还是 String
有人可以澄清一下吗?
None 个。
如果您将对象传递给 println()
this
println(Object o)
将被调用,实际上调用 String.valueOf(o)
。
但是如果 o 不为空,String.valueOf(o)
会调用 o.toString()
。
所以你可以间接地说它 toString()
。
当使用签名 println(Object) 时,toString() 方法用于输出该对象的字符串表示形式。
当在您定义的对象上调用 toString() 时,它会级联 superclasses 的层次结构,直到达到 java.lang.Object,因为在任何中间超级classes 或初始class。到达 java.lang.Object 后,系统将调用基本 toString() 方法,该方法打印该对象的字符串文字表示,这就是为什么您会在输出中看到一些内存地址的原因。