一个小问题

unlock_2000 2004-02-02 02:25:40
在阅读<Thinking in Java>的过程中,在I/O那章的最后总结时,有这么一句话,不知道什么意思,请大侠们解惑.

With inheritance , you can create new types of input and output objects. And you can even add a simple extensibility to the kinds of objects a stream will accept by redefining the toString() method that's automatically called when you pass an object to a method that's expecting a String( Java's limited "automatic type conversion").

侯杰的翻译为:
通过继承,你可以产生新类型的input 和 output对象. 你甚至可以重新定义toString(),为这些"可被stream接受的对象类型"进行简单的扩充.当你将某个对象传入某个"预期收到String的函数时,便会自动调用该对象的toString(),这是JAVA提供的有限度自动型别转换功能.

我知道在象"+"之类的操作符时,对象的toString()方法是能自动调用,但这儿是什么意思呢? 请大侠说详细一点,最好有个小例子让兄弟看看. 谢谢.
...全文
39 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
unlock_2000 2004-02-02
  • 打赏
  • 举报
回复
TO danceflash(Wine) 关于println方法的情况我知道,我问的不是这个.

TO flyforlove(为情飞)
我开始也是这么理解的,但写了个小例子一试,本来是要接受String类型的地方用个
方用个对象往里一传,连编译都过不了. :)
danceflash 2004-02-02
  • 打赏
  • 举报
回复
println方法中使用的String.valueOf(Object)方法
而String.valueOf(Object)方法又去调用了toString方法 ^_^
flyforlove 2004-02-02
  • 打赏
  • 举报
回复
跟踪一下println的源码,确实调用了toString()函数,obj.toString()

“预期收到String的函数时,便会自动调用该对象的toString()”,
就是说如果你把对象传到一个地方,而这个地方本来是要接受String类型的,
那么java的编译器就会自动调用toString()方法,
toString()这个函数是object类就有的。
unlock_2000 2004-02-02
  • 打赏
  • 举报
回复
不是的,我看了一下,println方法是可以接受一个object类型的参数的.
这个方法的实现中将对象转成String , 显然跟这里说的不是一个意思.
danceflash 2004-02-02
  • 打赏
  • 举报
回复
这章没看,不便多说
不过,除了+之外,print方法也要自动调用toString方法
不知道这里是不是指的这个
416 2004-02-02
  • 打赏
  • 举报
回复
关注

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧