0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Effective Javaを読む】 第3章 項目10 『toStringを常にオーバーライドする』

Last updated at Posted at 2020-07-31

#toStringを常にオーバーライドする

新しいクラスを作ってtoStringしてみても"PhoneNumber@163b91"のような別にもらっても嬉しくない文字列がかえってきます。
toStringに関する一般契約は「簡潔だが、人が読みやすくなっている有益な表現」です。

##サンプルコード

/**
 * この電話番号の文字列表現を返します
 * 文字列は14文字で構成されていて、その形式は、"(XXX) YYY-ZZZZ"です。
 * XXXは市外局番で、 YYY-ZZZZは市内局番です。
 * (各大文字は、1桁の数字を表しています。)
 * 
 * この電話番号の3つの部分のどれかが、そのフィールドを埋めるには
 * 桁が少ない場合には、そのフィールドの先頭が0で埋められます。
 * たとえば、最後の4桁部分の番号が"123"だとしたら、文字列表現の最後の
 * 4文字は"0123"となります。
 * 
 * 市外局番のカッコの後に、市内局番と区切るための空白が一つあることに注意してください。
 */
@Override public String toString(){
    return String.format("(%03d) %03d-%04d", 
                         areaCode, prefix, lineNumber); 
}

これで"{Jenny=(707) 867-5309}"が返ってきますね!
toStringをきっちりオーバーライドすることは、このクラスを使う別な人のプログラムの解析をする時間を省略してあげることにつながります。

#続く
【Effective Javaを読む】 第3章 項目12 『Comparableの実装を検討する』
https://qiita.com/Natsukii/items/1942f7f41ac39b914591

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?