为什么不创建一个返回类中的所需信息而不是重写toString()方法的方法?重写toString的目的是什么?
回答
覆盖toString()
用于设置在隐式字符串转换期间返回的内容。一个例子可能是这样的:
System.out.println("The result is: " + animal);
这是更好地看到:
The result is: a dog.
比:
The result is: [email protected]
完美,为什么重写toString()而不是创建方法getAnimal()? – Bob 2013-05-07 23:55:41
@Bob,你可能必须显式地调用'getAnimal()',而不是自动调用'toString()'。例如:'System.out.println(“结果是:”+ animal.getAnimal);'。两种方式都很好,但我总是为调试做一个有用的toString()方法。有些地方只会调用'toString()'来创建调试输出,所以这是另一个需要考虑的事情。 – 2013-05-08 00:50:48
基本上是因为它保证每一个对象上得到支持。 toString()
是Object
类的成员,因为它的工作是获取类的字符串表示形式,所以其他代码可以依赖它。例如,PrintStream
(System.out
的类)实现了依赖它的print(Object)
方法。
toString
被覆盖的常见原因是对于那些对toString
的经典实现来说不明显的成员的类。在这种情况下,自定义toString
将返回该类的相关字符串值是有意义的。
- 1. 为什么我的toString()打印toString类而不是我的重写方法?
- 2. 重写的ToString()在MEF MetadataAttribute
- 3. 重写的ToString()<MyClass>
- 4. 什么是ToString(“N0”)格式?
- 5. 重写$ .ajaxSetup中的“xhr”属性的目的是什么?
- 6. 什么是更好的使用:“2”.toString()=== 2.toString()或“2”== 2?
- 7. 什么是URL重写?
- 8. 重写NHibernate使用的POCO的ToString()
- 9. 什么是正确的重写规则?
- 10. 什么是重写的C运算符++
- 11. 什么是重写equals()和hashCode()的POJO?
- 12. 双重暗示的目的是什么?
- 13. 在Java中重写toString()的问题
- 14. 重写空对象的ToString? C#asp.net
- 15. 什么是element.style,它为什么重写我的CSS设置?
- 16. 什么是csharp替代toString()[java]/__str__ [python]?
- 17. ListBox SelectedItem问题。显示重写的ToString而不是
- 18. 这个程序的Getters,setters,equals和toString是什么。如何写它
- 19. 什么将是重写规则,当查询不是一个有效的目录
- 20. 什么是错的这个htaccess的多级目录的重写规则?
- 21. toString in subClasses不能重写抽象toString,Java
- 22. 什么是“ffdshow”的缩写?
- 23. Ruby中重做和重试语句的目的是什么?
- 24. 阶 - 尝试打印重写toString方法
- 25. 在Scala枚举中重写toString方法
- 26. 在Groovy中重写Joda DateTime toString
- 27. 数据未到达重写ToString()方法
- 28. Java ArrayList的(ArrayList).toString的反转是什么?
- 29. Exception的.ToString()和.Message之间的区别是什么?
- 30. 什么是以下三个的ToString之间的差异
'“为什么不创建一个方法,在类中返回所需的信息......” - 嗯? “你在课堂上返回所需的信息”是什么意思?重写'toString()'有什么问题?你知道它如何与'System.out.println(...)'很好地啮合,对吗? – 2013-05-07 23:32:45
他们不能已经这样做吗? – Tdorno 2013-05-07 23:33:23
我想我不知道它的网格很好。我读过很多帖子,我可以找到的所有内容是...“toString方法返回一个字符串,该文本代表此对象” – Bob 2013-05-07 23:43:29