【问题标题】:when println() is displaying an Object, which one of the Objects methods does println() call? [closed]当 println() 显示一个 Object 时,println() 调用哪个 Objects 方法? [关闭]
【发布时间】:2015-06-02 05:05:47
【问题描述】:

println() 显示Object 时,Object 的哪一个 println() 调用的方法?

  • 添加()
  • toString()
  • 等于()
  • compareTo()
  • 字符串()

我不确定是toString 还是String 有人可以澄清一下吗?

【问题讨论】:

标签: java eclipse methods static


【解决方案1】:

没有。
如果您将 Object 传递给println() this

println(Object o) 

将被调用,实际上调用了String.valueOf(o)

但是如果 o 不为空,String.valueOf(o) 会调用 o.toString()

所以你可以间接说它的toString()


println(java.lang.Object)valueOf(java.lang.Object)

【讨论】:

  • 感谢这真的有帮助
【解决方案2】:

当使用签名 println(Object) 时,toString() 方法用于输出该对象的字符串表示形式。

当对您定义的对象调用 toString() 时,它将向上级联超类的层次结构,直到到达 java.lang.Object ,因为在任何中间超类或初始类中都没有覆盖 toString() 方法。到达 java.lang.Object 后,系统将调用基本的 toString() 方法,该方法打印该对象的字符串文字表示,这就是您将在输出中看到一些内存地址的原因。

【讨论】:

  • 感谢这真的有帮助
猜你喜欢
  • 1970-01-01
  • 2015-10-27
  • 1970-01-01
  • 1970-01-01
  • 2020-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-07
相关资源
最近更新 更多