如何从对象的构造函数中的另一个类访问布尔值?

时间:2015-01-08 14:35:05

标签: java constructor boolean

所以我有一个主类,在这个类中我有一个名为test的布尔值。我希望能够在一定时间后打开或关闭它,所以我有一个名为BooleanFlipCounter的类。以下

public class BooleanFlipCounter implements Runnable {
    int seconds;
    boolean booleanToFlip;
    boolean setOnOrOff;

    // Seconds is seconds before flip.
    // booleanToFlip is where you define where you use it which boolean to use.
    // setOnOrOff is true or false, whether it flips it to on or off after a
    // certain time.

    public BooleanFlipCounter(int secondss, boolean booleanToFlips, 
                              boolean setOnOrOffs) {
        seconds = secondss;
        booleanToFlip = booleanToFlips;
        setOnOrOff = setOnOrOffs;
    }

    @Override
    public void run() {
        // TODO Auto-generated method stub
        while (seconds <= 0) {

            System.out.println("1: " + booleanToFlip + " : " + setOnOrOff);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            seconds--;
            System.out.println("Minused");

        }

        if (setOnOrOff == true) {
            Main.test = true;
            System.out.println("2: " + booleanToFlip + " : " + setOnOrOff);
        } else if (setOnOrOff == false) {
            Main.test = false;
            System.out.println("3: " + booleanToFlip + " : " + setOnOrOff);
        }

    }

}

我希望能够访问&#34; test&#34;当我创建一个新的BooleanFlipCounter时。如何将其作为布尔对象访问,而不是作为实际的布尔值?如果这有任何意义。

1 个答案:

答案 0 :(得分:0)

boolean变量不是对象,您不能“作为”对象访问它。如果要引用boolean变量,则需要使用对包含它的对象的引用。

您可以定义一个界面:

public interface Testable {
    boolean isTest();
    void setTest(boolean test);
}

然后,您可以根据其内部Main标记生成Testable类实现test,并使BooleanFlipCounter引用Testable个对象它应该操纵。

(请注意,这需要您创建Main类的实例,或者至少创建实现Testable接口的实例。如果{{1} } flag当前是一个静态变量,考虑将其设置为非静态变量。您可以让静态Main.test方法创建一个main并在其上调用方法来完成实际工作。)