楼主请认真看一下哈
虽然java.lang.Objiect已经提供了toString()方法的实现,但是她所返回的字符串通常不是用户所期望看到的,也就是说他在绝大多数情况下的输出的内容并不能满足我们的要求,没有包含我们所需要的一些内容。
对于这个通用的toString()方法,他所产生的字符串包含三分小部分:类的名字、一个“@”符号以及一个无符号十六进制的数列码。通常的形式为:Base@12b4c9。所以,这麽少的信息肯定不能满足我们的各种复杂需求。
对于toString()方法,他返回的字符串应该是简洁的,但所包含的信息是非常丰富的,并且很易于阅读,使我们可以非常方便的了解到该实体对象当时的状态。虽然,对于一个实体对象的toString()方法的实现并没有很严格的规定,但是提供一个号的toString()方法的实现,可以使我们在使用这个类时更加的方便。
当一个对象被传递给print()方法、字符串连接操作符(+)以及assert时,被传递对象的toString()方法将会被自动调用。如果这是提供一个好的toString()方法,那么对于产生一个好的提示信息将会是非常方便的,有利于调适工作的警醒,例如:
System,out.println("Base:\t"+base);
这是很多程序员都非常习惯的调试方法,用它输出的base对象的一些信息,如果实现了toString()方法,那么输出的信息的形式可能为:base:【id=1234567】,而如果使用的是默认的toString()方法,那么得到的结果可能是Base:Base@1b2f3d。通过这个信息除了可以判断出该对象不为空外,得不到该对象的任何其他信息,这不是我们想要的结果:
实现一个对象的toString()方法,最好遵循以下的原则:
1、toString()方法应该包含所有的令人感兴趣的信息,也就是说包含的内容应该全面,通过输出的内容那能够了解这个对象的所有信息。
2、要注意一个良好的表现格式,虽然不要求非常完美,输出的信息应该是可读的,能明确的表达你的意图。
3、要采集用通用的发放来实现toString()方法,不要依赖于对象中的一些具体实现,否则你的toString()方法就要遵循业务实现的修改而不断的进行修改。
最后,再一次建议大家在实现对象的时候要实现toString()方法,这样会给编程和调试工作带来很到的建议 |