#navi_header|Java| Java5から導入されたenumですが、うまく使いこなせるとより分かりやすいプログラムが書けます。 ヒントになりそうなサンプルコードを作ってみましたので、紹介します。(GitHubにTestNGテストコードの形式でアップしてます) 基本的な使い方: - https://github.com/msakamoto-sf/javasnack/blob/master/src/test/java/javasnack/testng1/enums/TestEnumBasics.java -- java.lang.Enum#values() メソッド, valuesOf(String) メソッド, ordinal() メソッドを覚えておくと、enumを柔軟に運用できると思うのでオススメです。 -- コンストラクタをカスタマイズして、複数の値のペアをカプセル化することもできます。"Tuple"っぽいですね。 -- abstractメソッドを定義して、インスタンスごとにoverrideしたり、interfaceを実装することもできます。 EnumをキーとしたCollectionの紹介: - https://github.com/msakamoto-sf/javasnack/blob/master/src/test/java/javasnack/testng1/enums/TestEnumCollection.java -- 検索して良く見かける活用例としては、ビットフィールドをEnum + EnumSet で表現するケースがあります。 -- ちなみに、ビットフィールドを本格的に操作したいのであれば java.util.BitSet というのがあるので、そちらを検討してみましょう。 型安全(Type Safe)な定数定義としてのEnumと、その定数値からの逆引き: - https://github.com/msakamoto-sf/javasnack/blob/master/src/test/java/javasnack/testng1/enums/TestEnumConversions.java enumの使い方はネット上にも色々資料がありますが、"Effective Java"の第二版に、基本からヒントになりそうな応用まで豊富に紹介されてますので、そちらもオススメです。 - Stringを対応するenumに変換する参考: -- EffectiveJava (2nd), "項目30 int定数の代わりにenumを使用する" -- http://javatechnology.net/java/string-enum/ -- http://stackoverflow.com/questions/604424/java-convert-string-to-enum -- http://stackoverflow.com/questions/7056959/convert-string-to-equivalent-enum-value -- http://stackoverflow.com/questions/17481016/how-to-convert-string-value-into-enum-in-java -- http://javarevisited.blogspot.jp/2011/12/convert-enum-string-java-example.html -- http://viralpatel.net/blogs/convert-string-to-enum-instance-string-enum-java/ - intを対応するenumに変換する参考: -- http://javatechnology.net/java/int-enum/ -- http://stackoverflow.com/questions/5878952/cast-int-to-enum-in-java -- http://stackoverflow.com/questions/5292790/convert-integer-value-to-matching-java-enum -- http://stackoverflow.com/questions/7996335/how-to-match-int-to-enum #navi_footer|Java|