·
这网站怎么是必填?

我觉得我的表述没有问题

你不重写toString,那它不输出你想要的结果,不代表它不会给你转换成字符串;你调用了println,它去调用valueOf方法,在程序员使用System.out.println()语句的时候,程序员的主观感觉是println()方法给你转换的,至于方法的实现过程调用了谁,在调用者看来没那么重要

按照你的想法,转换字符串是valueOf()转换的,那valueOf还调用了toString()呢,那也应该是toString转换的才对。

而toString方法在Object里就有,null会被valueOf()转化为字符串"null",基本数据类型有专门的valueOf()方法来转换,所以所有类型的数据都可以被println()转换成字符串输出

Replies
4

事实上用println的人完全不会在意是否是转换为字符串,只在意它是否能输出,以及输出的格式,所以转换字符串的功能不是它自带的你也不能通过其他方式获取到这个字符串,他屏蔽了这个细节,然而你要将这个细节深挖出来,那宁愿讲出它是如何实现功能的,String.valueOf()在客观上就已经实现了功能,我可以获取转换后的值,那我可以认为是它实现的,我可以不需要考虑里面是什么,问题就在于prinln并没有这样的功能,所以我不认为是他提供了转换字符串的功能

我想如果非要将功能概括为“能够将任何类型的数据转换成字符串输出”,那不如分类概括