JavaのEnumに関する初学メモ

プログラミング

JavaのEnumに関するメモ



書いてるコードの定数が膨大になってきたので、ずっと逃げてきたEnumについて調べてた。
基本的にクラスの応用って感じで、そんなに難しくなさそう。

【Java入門】Enum(列挙型)の使い方総まとめ https://www.sejuku.net/blog/14779


Enumと似たものに定数クラスなる書き方があるみたいだけど、初期化の仕方が自由すぎて(片岡の解釈)クラスが膨大になってしまいがちだとか。
技術的負債として今でも使ったりするらしいけど、基本的には後から導入されたenumを使うべき。

【Java】定数クラスをどうしたものかと改めて考える - プログラマのはしくれダイアリー
https://yyyank.blogspot.com/2016/09/java.html #yy_yank_blog


enumはコンストラクタ、フィールド、メソッドが使えるので、余計なif文をなくすことができる。
定数自体がオブジェクトとして振舞うので、処理を移譲できるとのこと。JavaDocも簡潔になるんだとか。
http://java-study.blog.jp/archives/1041817233.html


『スッキリわかるJava入門』では、(nullを除いて)予期せぬ引数を入れられないようにしたい欲求からenumが導入されてた。
nullを入れられるのは、言語設計の都合上のものらしい。
http://outofmem.hatenablog.com/entry/2014/12/12/030132


EnumMapというEnum限定のMapを使うと値の対応が高速らしい。
今書いてるコードではSQLで定数Stringが沢山ほしいので、これを使うのがよさそう。

EnumMapの使い方メモ https://qiita.com/endrugus/items/747c42b813ff9d3a9274 #Qiita