问题描述
为什么Jln中的println和printf显示不同?
我最近发现了有关JShell的内容,并想尝试一些事情,然后我发现了这一点。
为什么将println的输出输出为普通输出,为什么将printf的输出输出为所有这些东西?
解决方法
printf
返回一个PrintStream
,因此jshell向您显示了将返回值转换为字符串($1
和$2
之后的内容)的方式,因为PrintStream
不会覆盖toString
,所以它使用the one from Object
。
正如Rogue在评论中指出的那样,由于printf
除非有指示,否则不会打印换行符,因此您会在与打印值相同的行上看到返回值。
println
不返回任何内容,因此只显示打印值(和换行符)。