このエントリーをはてなブックマークに追加

ポイントというか心にとまったことのアウトプットです。

※個人的な重要度のバイアスがかかっているので、「べつにいいかー」と思ってたりすることはメモしてません。

※手を動かして理解したことなど、間違いを含む可能性があります。

※手元の環境は断りがなければ基本はjava 7 をIntelliJ IDEA Ultimate on OSX で動かしてます。


「列挙型と定数と不変型」

  • class 内の定数はstatic finalにする。staticをつけることで、各インスタンスごとに定数を持たなくする
  • 定数を集めたConstants クラスの指針
  • 基本型と文字列定数の変更は、依存しているクラスの再コンパイルをしないと反映されない
  • enumは内部的にはクラス
  • enum定数はそれぞれがenum型のオブジェクトになる
  • enumオブジェクトはシングルトン
    • == 演算子で比較可能
  • enumのコンストラクタ、フィールド、メソッド

    • 用途として、たとえば、MAN などのenum値を、DB上の数値に変換するメソッドなど
  • .values() でenum値の列挙。順序は書いた順

  • switch-case のラベルに enum値を利用可能

  • EnumSet, EnumMap

  • 不変型の利用

  • 不変型で変更できてしまう事故は、Listなどのコレクションオブジェクトで起こりやすい

    • 変更不能コレクションを利用する
    • ↑のような意識を最初から持ってるScalaは事故起こりにくいってことになるのか
  • java8 からDateTime API

    • ☆紙面ではかなり駆け足での紹介なので、別途補足の必要あり