public enum 속성{
불 = 0 << 1,
물 = 0 << 2,
땅 = 0 << 3,
풀 = 0 << 4
}
열거형 사용 시 위와 같이 비트연산을 통해 플래그 연산을 통해 편리하게 사용할 수 있다.
예를 들어
속성 elementType = 속성.불 | 속성.물;
if(elementType & 속성.땅 || elementType & 속성.물){
//속성이 땅 혹은 물 속성을 갖고 있을경우 코드라인에 들어오게됨..
}
자바에서는 더 효과적인 EnumSet 클래스를 제공한다.
내부적으로 bit flag을 사용하고 있어 빠르고 안전하게 다룰수 있게 해준다.
new로 객체를 생성할수 없고 내부를 보면 static메소드를 호출해서 사용한다.
추가할사항은 나중에 추가....
EnumSet 클래스 공식문서
https://docs.oracle.com/javase/8/docs/api/java/util/EnumSet.html