Effective Java 3rd [Chapter 3] - すべてのオブジェクトに共通のメソッド

すべてのオブジェクトに共通のメソッド

Effective Java 第 3 版の個人的メモ

  1. 項目 10 equals の override は一般契約(general contracts)に従うべし
  2. 項目 11 equals をオーバーライドする場合は hashcode もオーバーライドせよ
  3. 項目 12 常に toString をオーバーライドせよ
  4. 項目 13 clone をオーバーライドするときは注意せよ
  5. 項目 14 Comparable を実装することを考慮せよ

1. 項目 10 equals の override は一般契約(general contracts)に従うべし

1.1. どういう時にオーバーライドする必要があるのか?

クラスが単なるオブジェクトの同一性とは異なる論理的等価性という概念を持っていて、他のインスタンスと比較する必要があるとき

Effective Java 3rd [Chapter 2] - オブジェクトの生成と消滅

オブジェクトの生成と消滅

Effective Java 第 3 版の個人的メモ

  1. 項目 1 コンストラクタの代わりに static ファクトリーメソッドを検討する
  2. 項目 2 数多くのコンストラクタパラメータに直面した時にはビルダーパターンを検討する。
  3. 項目 3 private のコンストラクタか enum 型でシングルトン特性を強制する
  4. 項目 4 private のコンストラクタでインスタンス化不可能を強制する
  5. 項目 5 資源を直接結び付けるよりも依存性注入を選ぶ
  6. 項目 6 不必要なオブジェクトの生成を避ける
  7. 項目 7 廃れたオブジェクト参照を取り除く
  8. 項目 8 finalizer と cleaner の使用は避けるべし
  9. 項目 9 try-finally よりも try-with-resources を使うべし

1. 項目 1 コンストラクタの代わりに static ファクトリーメソッドを検討する

1.1. 結論

コンストラクタの代わりに static ファクトリーメソッドを使用すると様々なメリットがある。 そのメリットが必要ない時はコンストラクタを使用すればよい。

AWS CodebuildからMattermostへの通知

AWS CodeBuild から Mattermost へ通知させる機会があったので、その方法についての備忘録として残しておきます。

AWS CodeBuild の環境変数 MattermostWebhookURLMattermostIncomming Webhook URLを保持しておきます。また、IAM から CodeBuild のロールに AmazonSSMReadOnlyAccessの権限を与えてください。

AWS CodeBuildとSonarCloudの連携方法

AWS CodeBuild と SonarCloud を連携させる機会があったので、その方法についての備忘録として残しておきます。

AWS CodeBuild の環境変数 SonarCloudAccessToken に SonarCloud のアクセストークンを保持しておきます。

SonarCloud のアクセストークンの発行は、SonarCloud のサイトで ユーザーアイコン > Settings > Personal access token から出来ます。