在Java编程过多的布尔变量声明时,我想避免的一件事是:
public static boolean mytruebool = true, myfalsebool = false, myothertruebool = true, myotherfalsebool = false;
是否有一种有效的方式(可能是w /数组使用)来声明和分配变量?非常感谢任何帮助!
答案 0 :(得分:5)
如果这些是字段(static
或其他字段),boolean
将有initial value of false
。此时,您可以根据程序的需要进行设置。至少,您不必担心一半的布尔字段。
如果您发现自己的boolean
字段太多,那么您可能需要重新考虑程序的设计,而不是预先初始化您的值。
答案 1 :(得分:2)
如果您对位操作感到满意,可以将所有布尔值存储为单个整数。在这种情况下,您可以将所有“变量”的初始状态(以及其他各种状态)存储为单个整数值。
boolean firstVar = false;
boolean secondVar = true;
boolean thirdVar = true;
......可以成为......
public class Test {
public static final int INITIAL_STATE = 6;
private static int myVar = INITIAL_STATE;
public static boolean getVar(int index) {
return (myVar & (1 << index)) != 0;
}
public static void setVar(int index, boolean value) {
if (value) {
myVar |= (1 << index);
} else {
myVar &= ~(1 << index);
}
}
public static void printState() {
System.out.println("Decimal: " + myVar + " Binary: " + Integer.toBinaryString(myVar));
}
public static void main(String[] args) {
System.out.println(getVar(0)); // false
System.out.println(getVar(1)); // true
System.out.println(getVar(2)); // true
printState();
setVar(0, true);
System.out.println(getVar(0)); // now, true
printState();
}
}
在此处详细了解位操作:Java "Bit Shifting" Tutorial?
答案 2 :(得分:0)
这应该有用;已经测试过了;
boolean mytruebool,myothertruebool;
mytruebool = myothertruebool= true;
boolean myfalsebool,myotherfalsebool;
myfalsebool=myotherfalsebool=false;