有没有办法在Java中“批量分配”布尔变量?

时间:2014-02-04 17:12:19

标签: java variables declaration bulk

在Java编程过多的布尔变量声明时,我想避免的一件事是:

public static boolean mytruebool = true, myfalsebool = false, myothertruebool = true, myotherfalsebool = false;

是否有一种有效的方式(可能是w /数组使用)来声明和分配变量?非常感谢任何帮助!

3 个答案:

答案 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;