Advantage
Provide meaningful of an object info to client.
Disadvantage
Constrain the ability of changing the toString() implementation since this will affect the client who use this formatted string as persistence.
Note
-
Whether or not you decide to specify the format, you should clearly document your intentions.
/**
* Returns the string representation of this phone number.
* The string consists of fourteen characters whose format
* is "(XXX) YYY-ZZZZ", where XXX is the area code, YYY is
* the prefix, and ZZZZ is the line number. (Each of the
* capital letters represents a single decimal digit.)
*
* If any of the three parts of this phone number is too small
* to fill up its field, the field is padded with leading zeros.
* For example, if the value of the line number is 123, the last
* four characters of the string representation will be "0123".
*
* Note that there is a single space separating the closing
* parenthesis after the area code from the first digit of the
* prefix.
*/
@Override public String toString() {
return String.format("(%03d) %03d-%04d",
areaCode, prefix, lineNumber);
}
- Whether or not you specify the format, provide programmatic access to all of the information contained in the value returned by toString .