toString():用于调试还是用于人类?

Gil*_*ili 6 java naming-conventions

class Address
{
  private enum Component
  {
    NUMBER,
    STREET,
    STATE,
    COUNTRY
  }

  private Map<Component, String> componentToValue = ...;
}
Run Code Online (Sandbox Code Playgroud)

我希望我的课程包含两种方法:

  1. 一个用于指示每个地址组件的值(因此,如果出现任何问题,我可以进行调试).
  2. 一个以人类期望的形式返回地址:"1600 Amphitheatre Parkway Mountain View,CA 94043".

Object.toString()的最佳实践是什么?它主要用于#1还是#2?这些方法的命名是否有最佳实践?

JB *_*zet 14

您会在SMS消息和HTML页面中以相同的方式格式化地址吗?你会用英语,法语和日语以同样的方式格式化吗?

如果不是,那么您有答案:演示文稿不属于对象,而是属于显示对象的表示层.除非该对象专门用于表示层,例如,如果它是HtmlI18nedAddress,请使用toString进行调试.

考虑DateVS SimpleDateFormat.Date包含状态并SimpleDateFormat返回多个表示.