Effective Java
パンくず Effective Java 詳細メッセージにエラー記録情報を含める 概要 詳細メッセージにエラー記録情報を含める 内容 例外の詳細メッセージは実際に問題が起こった場合の解析が容易になるように エラーの原因と関わるパラメータのすべてを出力するべきです…
パンくず Effective Java 標準例外を使用する 概要 標準例外を使用する 標準例外を使用する利点 ・APIの利用が用意になる ・見慣れた例外で統一されるため可読性が上がる ・例外のクラス数が少なくなるためメモリ量が節約される 頻出例外 例外 使用する機会 …
パンくず Effective Java 一般的に受け入れられている命名規約を守る 概要 一般的に受け入れられている命名規約を守る 活字的規約 パッケージ名の規約 ・ピリオドで区切られた要素を持ち、階層的であること。 ・各要素は小文字のアルファベットと数字で構成…
パンくず Effective Java すべての公開API要素に対してドキュメントコメントを書く 概要 すべての公開API要素に対してドキュメントコメントを書く 詳細 公開APIは必ずJavaDocのドキュメンテーションコメントを付与すること。 保守を意識するなら、公開しない…
パンくず Effective Java 必要な場合には、防衛的にコピーする 概要 必要な場合には、防衛的にコピーする 詳細 クラスの内部を変更されたくない場合は、防衛的コピーによって 参照を渡さずに値をコピーして渡すこと。 これにより、外部から意図せぬ変更をさ…
パンくず Effective Java パラメータの正当性を検証する 概要 パラメータの正当性を検証する 詳細 publicメソッドの場合 JavaDocに引数が取りうる値に関する仕様を記述し、 例外を投げる場合はthrowsを記述する。 privateメソッドの場合 アサーション(asser…
パンくず Effective Java nullではなく、空配列か空コレクションを返す 概要 nullではなく、空配列か空コレクションを返す 詳細 配列やコレクションを返却する処理で、データが無いケースを扱いたい場合は nullではなくサイズ0の空配列・空コレクションを返…
パンくず Effective Java 拡張可能なenumをインターフェースで模倣する 概要 拡張可能なenumをインターフェースで模倣する 詳細 Enumは継承できないが、インターフェースによる模倣が可能。 実装が重複する場合はヘルパークラスなど外部化することで重複を解…
パンくず Effective Java int定数の代わりにenumを使用する 概要 int定数の代わりにenumを使用する 詳細 int enumパターン 特定の数値に意味を持たせて定数化する方法。 この方法に文法的な縛りは何もなく、せいぜい定数名を合わせることで多少分かりやすく…
パンくず Effective Java 戦略を表現するために関数オブジェクトを利用する 概要 戦略を表現するために関数オブジェクトを利用する 詳細 関数オブジェクトを利用することで状況に合わせて実行する処理を切り替えることが可能です。 これは、デザインパターン…
パンくず Effective Java Comparableの実装を検討する 概要 Comparableの実装を検討する Comparableとは ComparableインターフェースのcompareToメソッドを実装することで Arrays.sort,Collections.sort,TreeMap等ソートに関わる処理に対応することができま…
パンくず Effective Java cloneを注意してオーバーライドする 概要 cloneを注意してオーバーライドする cloneとは cloneメソッドをオーバーライドすることで、 クラスの複製が可能になります。 ※ただし、シャローコピー(浅いコピー)です。 サンプルコード …
パンくず Effective Java equalsをオーバーライドする時は一般契約に従う 概要 equalsをオーバーライドする時は一般契約に従う equalsメソッドをオーバーライドするケース 論理的等価性を求められるケース。 例えば、Personクラスのname,birthdayが同じなら…
パンくず Effective Java 数多くのコンストラクタパラメータに直面した時にはビルダーを検討する 概要 数多くのコンストラクタパラメータに直面した時にはビルダーを検討する 想定されるケース 必須項目、オプション項目を含む多数の項目を扱うクラスを作成…
概要 書籍 Effective Javaに関するメモ。 全てをカバーせず、自分の中で新たに学ぶことやまとめ直しておきたいことのみを抜粋します。 また、例示するサンプルも写経せずに出来るだけ自分で考えたサンプルにします。 各章 1章 はじめに 略 書籍全般に関する…