私は列挙型を持っています。
enum testMe {
one,
two,
three;
long longValue() {
return 1<<ordinal();
}
}
for (testMe myLoop = testMe.values()) {
System.out.println(value.longValue() + ":" + myLoop);
}
列挙型をループすると、列挙型の値の序数のシフトに期待するものが正確に得られます。ただし、long で渡すパラメーターを修飾する必要があります。
Long myLong = 3;
for (testMe myLoop = testMe.values()) {
if ((myLong & value.longValue()) != 0) {
System.out.println(value.longValue() + ":" + myLoop);
}
}
この場合、One と Two のみが印刷されます。ただし、このメソッドは列挙型で 32 個の値に対してのみ機能します。BigInteger をどのように使用できるか考えている人はいますか?
BigInteger longValue() {
BigInteger one = BigInteger.valueOf(1);
return one.shiftLeft(ordinal());
ありがとうC