JavaでのEnumSetクラスの使用方法についてメモ。
一般的にEnumクラスへ ある種目内の全データを定義しておいて、その一部のデータと一致してるかどうか判定したい場合などでEnumSetを使用するケースが開発現場では多い印象です。
EnumSetクラスの使用例
Enumクラス
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
/** * <p>[概 要] 番号の列挙型クラス</p> * <p>[詳 細] </p> * <p>[備 考] </p> */ public enum EnumNumber { NUMBER_1(Integer.valueOf(1)), NUMBER_2(Integer.valueOf(2)), NUMBER_3(Integer.valueOf(3)); private Integer num; /** * <p>[概 要] プライベートコンストラクタ</p> * <p>[詳 細] 列挙型のインスタンス生成を抑止します。</p> * <p>[備 考] </p> */ private EnumNumber(Integer num) { this.num = num; } /** * <p>[概 要] 番号を取得する。</p> * <p>[詳 細] </p> * <p>[備 考] </p> * @return 番号 */ public Integer getValue() { return this.num; } } |
EnumクラスからEnumSetを作成して判定する例
Javaソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import java.util.EnumSet; import java.util.Set; public class EnumSample { private static final Set<EnumNumber> enumNumberSet = EnumSet.of(EnumNumber.NUMBER_1, EnumNumber.NUMBER_2); public static void main(String[] args) { if(enumNumberSet.contains(EnumNumber.NUMBER_1)) { System.out.println("EnumNumber.NUMBER_1は存在します。"); } else { System.out.println("EnumNumber.NUMBER_1は存在しません。"); } if(enumNumberSet.contains(EnumNumber.NUMBER_3)) { System.out.println("EnumNumber.NUMBER_3は存在します。"); } else { System.out.println("EnumNumber.NUMBER_3は存在しません。"); } } } |