toString应该格式化,就像用于调试/记录类/对象时一样?

时间:2016-06-17 15:50:32

标签: java tostring

我重写toString方法以打印出我班级的成员。什么是大型项目使用的常见格式...... classname():变量name1 =变量value1以逗号分隔?

任何链接到某些开源代码都会很棒。

此外,看起来.NET实际上具有此任务的特定方法:

[DebuggerDisplay("{Name} [date={Date}, value={Value}]")]
public class MyClass {

在java中,CustomClass.toString用于记录?

2 个答案:

答案 0 :(得分:0)

重写toString类的目的是根据需要对其进行格式化。是的,格式通常是一个对象或类名,其中包含您希望显示的所有字段的逗号分隔列表以及字段的附带名称(例如' date =' datevalue)。如果编写方法来显示正在测试的变量,toString是一个非常有用的调试工具。

答案 1 :(得分:0)

这完全取决于所讨论的课程,以及您认为相关的课程。

由于调试器可以显示所有字段及其值,因此您并不需要toString()。相反,它应该是相关信息的摘要,具体取决于预期目的。

示例:Person类包含idfirstNamelastNamephoneNumberaddressLine1,{{1}等字段},addressLine2citystate

zipcode结果中显示所有这些值是否相关?如果是,请使用以下格式:

toString()

但是,如果您有Person[id=1,firstName=John,lastName=Doe,phoneNumber=555-555-0127,addressLine1=123 Main St.,city=Queens,state=NY,zipcode=11354]

,请考虑结果
List<Person>

如果[Person[id=1,firstName=John,lastName=Doe,phoneNumber=555-555-0127,addressLine1=123 Main St.,city=Queens,state=NY,zipcode=11354], Person[id=2,firstName=Jane,lastName=Smith,...]] 方法只是帮助识别对象,那么对于此类用途会更好。只是名字(第一个+最后一个),也许是toString()

id

所以,正如我在开头所说:取决于。