そのため、代わりに EnumSet を使用するようにアプリケーションのいくつかのビットフィールドを変換しています。X|Y の比較を行うためのより良い方法があるかどうか知りたいです。現在、次のようなことを行っています。
if(bitfield & (X | Y) != 0) {
//do stuff
}
EnumSet に相当するものは次のようです。
if(enumSet.contains(X) || enumSet.contains(Y)) {
//do stuff
}
これを行うためのよりクリーンな方法はありますか?次のように確認できることを知っていますcontainsAll()
:
EnumSet flagsToCheck = EnumSet.of(X, Y);
if(enumSet.containsAll(flagsToCheck)) {
//do stuff
}
しかし、それは設定されているかどうかを知りたいシナリオのためのものです(X & Y)
。を確認する同等の方法はあり(X | Y)
ますか? メソッドのようなものがあると思いますがcontainsAny()
、その効果があると思われるものは何もありません。