Skip to content

아이템 36. 비트 필드 대신 EnumSet을 사용하라. #91

Answered by JoisFe
Irisation23 asked this question in 3. 과제
Discussion options

You must be logged in to vote

빛의 색 3개로 표현할 수 있는 케이스가 2^3 = 8가지 인데 모든 케이스를 다 저장하기 보단
빨, 초, 파를 비트 필드로 두고 OR 연산을 통해 여러 케이스를 만들 수 있게 되네요 ㅎㅎ

비트 필드는 아두이노를 이용해 LED 빛을 표현할때 많이 쓰곤 했던것 같습니다.
1, 2, 3번 LED가 있을때 1만 키고 싶을때, 1, 3을 키고 싶을 때, 1, 2, 3 모두 키고 싶을때가 다양한데
1번 LED : 첫 번째 비트
2번 LED : 두 번째 비트
3번 LED : 세 번째 비트
로 두고 0인 경우 off, 1인 경우 on 으로 하여 3 비트로 모든 케이스를 나타낼 수 있게 되는데 위 예제가 이와 비슷한 것 같습니다.

웹 애플리케이션을 구현할 때도 특정 옵션을 선택하는 경우 선택하지 않은 경우가 있을 것이고
이러한 옵션이 매우 많다면 여러 케이스를 관리하기가 힘들텐데
비트 필드를 이용한다면 조금더 편리해질 것 같고
좀 더 나아가서 이번 주제에 맞게 비트 필드 대신 EnumSet을 이용한다면 훨씬 관리하기 좋은 코드가 될 것 같습니다.!!

Replies: 2 comments 5 replies

Comment options

You must be logged in to vote
1 reply
@Irisation23
Comment options

Irisation23 Jan 30, 2023
Maintainer Author

Answer selected by Irisation23
Comment options

You must be logged in to vote
4 replies
@JoisFe
Comment options

@jinan159
Comment options

@JoisFe
Comment options

@Irisation23
Comment options

Irisation23 Jan 30, 2023
Maintainer Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
6장 열거 타입과 애너테이션 이펙티브 자바 6장 열거 타입과 애너테이션
3 participants