当println()
显示Object
时,Object
中的哪一个显示println()
方法会toString
调用吗?
我不确定String
或def combination(n, [x|xs]) do
(for y <- combination(n - 1, xs), do: [x|y]) ++ combination(n, xs)
end
是否有人可以澄清一下?
答案 0 :(得分:1)
他们都不是。
如果您将对象传递给println()
此
println(Object o)
将调用实际调用String.valueOf(o)
。
但如果o不为null,则String.valueOf(o)
会调用o.toString()
。
所以你可以间接说出它toString()
。
答案 1 :(得分:0)
使用签名println(Object)时,使用toString()方法输出该对象的字符串表示形式。
当你定义的对象上调用toString()时,它将级联超类的层次结构,直到到达java.lang.Object,因为在任何中间超类或初始类中没有重写的toString()方法类。到达java.lang.Object后,系统将调用基本toString()方法,该方法打印该Object的String文字表示,这就是为什么你会在输出中看到一些内存地址的原因。