ポイントというか心にとまったことのアウトプットです。
※個人的な重要度のバイアスがかかっているので、「べつにいいかー」と思ってたりすることはメモしてません。
※手を動かして理解したことなど、間違いを含む可能性があります。
※手元の環境は断りがなければ基本は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
- ☆紙面ではかなり駆け足での紹介なので、別途補足の必要あり