这可能是一个非常基本的问题,如果已经提出这个问题,请道歉。 Java中的toString()应该用于实际的程序逻辑,还是仅用于调试/人工读取。我的基本问题是当我需要在实际程序流程中使用字符串表示时,应该使用toString()或编写一个名为asString()的不同方法。
我问的原因是我在Web服务中有一堆类依赖于toString()才能正常工作,在我看来像asString()会更安全。
由于
答案 0 :(得分:9)
除少数特定情况外,toString
应该用于调试,而不是用于生产数据流。
该方法有一些限制,使其不太适合在生产数据流中使用:
java.Object
类的一部分,此方法通常由子类重写。在依赖于特定表示的情况下,这可能是有害的,因为子类的编写者可能不知道您的限制。此规则的明显例外是StringBuilder
和StringBuffer
类的toString
方法,因为这两种方法只是从相应对象的可变内容中生成不可变的字符串。
答案 1 :(得分:1)
它不仅仅用于调试/人工阅读,它实际上取决于使用对象的上下文。例如,如果您有一个显示某个对象X的表,那么您可能希望该表显示X的可读文本表示形式,在这种情况下,您通常会实现toString()方法。这当然是一个基本的例子,但有很多用途,在这种情况下实现toString()是个好主意。