タグ

Javaと列挙型に関するkiyo_hikoのブックマーク (2)

  • enum-j.html#java_enum

    C言語によるプログラミングでは、列挙型(enum型)はたいへん良く使われます。 オブジェクト指向言語でも、それは変わらないようです。C言語を拡張したC++言語ではもちろん、Java言語でも、J2SE 5.0になってから列挙型が導入されたほどです。 その一方で、オブジェクト指向言語で列挙型を使う弊害も、繰り返し指摘されてきました。列挙型とswitch文を使ったソースコードは、ポリモーフィズムを使って書き直すべき典型的な悪い例として、しばしば取り上げられて来ました。 しかし、列挙型を使ったプログラムのすべてが、ポリモーフィズムを使って書き直すべきだとは限りません。継承によるポリモーフィズムは、オブジェクト指向の特徴の1つですが、サブクラスを作るべきではないケースもあるのです。そのような場合に、列挙型を使ったコードを書くことは、悪いことではありません。 ここでは、オブジェクト指向言語における列挙

  • いまさら感もあるけどenumを使うときはequalsより==がいい! - newta(にゅーた)の日記

    Domaにあわせてバリバリenumを使ってます。 で、気がついたけどenumは==で比べたほうがいい。 enum ABC{ A,B,C; } とかで if(ABC.A.equals(data)) { ... } とかになってるときにdataがStringでもIntegerでも コンパイルエラーにならないんだよね。 クラスの自動生成とかリファクタリングやってると 時々、修正もれてて、いまいち。 せっかく型が厳しいのにもったいない。 なので if(ABC.A == data) { ... } のほうがいいよ! dataがStringとか違う型になってたらコンパイルエラーになってくれるしね! でも、シリアライズ・デシリアライズしても インスタンス別にならないんかな? ==で比べると心配だよ・・・。 と思って実装して試したけど、大丈夫だったー。 で、、、あ、Enumのequalsクラスの実装を見て

    いまさら感もあるけどenumを使うときはequalsより==がいい! - newta(にゅーた)の日記
  • 1