열거한 값들이 집합으로 사용될 경우 - 구닥다리 기법

public class Text {
   public static final int STYLE_BOLD      = 1 << 0; // 1
   public static final int STYLE_ITALIC    = 1 << 1; // 2
   public static final int STYLE_UNDERLINE = 1 << 2; // 4
   public static final int STYLE_STRIKETHROUGH = 1 << 3; // 8
   
   public void applyStyles(int styles) { ... }
}

text.applyStyles(STYLE_BOLD | STYLE_ITALIC);

더 나은 방법 - EnumSet

public class Text {
   public enum Style { BOLD, ITALIC, UNDERLINE, STRIKETHROUGH }
   
   // 어떤 Set을 넘겨도 되나, EnumSet이 가장 좋음
   // 이왕이면 인터페이스로 받아 클라이언트가 다른 Set구현체를 넘기더라도 처리할 수 있게 하자 
   public void applyStyles(Set<Style> styles) { ... }
}

text.applyStyles(EnumSet.of(Style.BOLD, Style.ITALIC));

결론

열거할 수 있는 타입을 한데 모아 집합 형태로 사용하려면 EnumSet을 사용하자.