그래서 EnumSet을 대신 사용하기 위해 응용 프로그램의 일부 비트 필드를 변환하고 X | Y 비교를위한 더 좋은 방법이 있는지 궁금합니다.EnumSet 중 하나 또는 둘 다 확인하기
if(enumSet.contains(X) || enumSet.contains(Y)) {
//do stuff
}
이 할 수있는 청소기 방법이 있나요 :
if(bitfield & (X | Y) != 0) {
//do stuff
}
각각 EnumSet 해당하는 것으로 보인다 : 현재 우리는 같은 것이 있습니까? 난 당신과 같이 containsAll()
를 확인할 수 있습니다 알고
EnumSet flagsToCheck = EnumSet.of(X, Y);
if(enumSet.containsAll(flagsToCheck)) {
//do stuff
}
그러나 당신이 (X & Y)
이 설정되어 있는지 알고 싶은 시나리오입니다. (X | Y)
을 확인하는 동일한 방법이 있습니까? 나는 containsAny()
메쏘드 같은 것이있을 것이라고 생각 하겠지만 그 효과가있는 것 같지는 않습니다.
원본 세트를 변경하지 않으려면 반대쪽 ('! valid.retainAll (enumSet)')을 원할 수도 있습니다. – assylias
나는 @ assylias의 요점에 관해서 논평하려했다. 작은 세트의 개인으로서 더 읽기 쉽다는 것은 아마 옳은 것 같습니다. – kcoppock
@assylias : 완료, 감사합니다. –