我想在单个值中存储4个 boolean 值可能性。例如,
我想要一个值来告诉一个人是否是:
IsSingle
IsGraduate
IsMale
IsLookingForPartner

因此最好将它们存储在一个字节中,该字节可以分配4位,每个参数一位。如果该位设置为1,则该 boolean 参数为true。因此,我可以进行位移运算来查找所有正确的东西。如果字节的值为111,则前三个参数为true。这是个好方法吗?有没有更好的方法来实现这一目标?

我需要将此值作为单个参数存储在数据库中。

最佳答案

位标志。

public static final int IsSingle = 1 << 0;
public static final int IsGraduate = 1 << 1;
public static final int IsMale = 1 << 2;
public static final int IsLookingForPartner = 1 << 3;

...

if ((Value & IsSingle) != 0) {
}

if ((Value & IsGraduate) != 0) {
}

// Set "Single"
Value |= IsSingle;

// Remove "Graduate"
Value &= ~IsGraduate;

07-26 08:12