所以我有一个主类,在这个类中我有一个名为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时。如何将其作为布尔对象访问,而不是作为实际的布尔值?如果这有任何意义。
答案 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
并在其上调用方法来完成实际工作。)