처음에 주제가 의도한 바를 이해하지 못해서 해맸었다.

이 글이 조금 도움이 되었다.

비트 필드 열거 상수


왜 사용하는 건데???

열거한 값들이 주로 단독이 아니라 그룹(집합)으로 사용 될 때 만들어낸 기법 같은 것!

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) {
        System.out.printf("Applying styles %s to text%n", styles);
   }
}

단독이 아닌 그룹으로 사용하고 싶으니 비트 연산을 통한 비트 필드로 표현하자!

각 상수에 2의 거듭제곱 값을 할당한 정수 열거 패턴을 사용한 것

text.applyStyles(STYLE_BOLD | STLYE_ITALIC); // 0001 OR 0010 = 0011

이런식으로 표현할 수 있게한 것

어느 정도 직관적이긴 한다 😂

비트 필드 단점

  1. 정수 열거 패턴의 단점을 그대로 지닌다.

  2. 비트 값 필드가 출력되었을 때 해석이 어렵다.

    Untitled