非常に奇妙なエラーが発生します。次のコードがあります。
while (true) {
System.out.println(model.getLightState());
if (model.getLightState() == 1) {
System.out.println("Entered..");
view.driveThroughJunction();
break;
}
}
これで、私のプログラムは、ライトの状態が「1」に変化したときに if ステートメントに入り、正常なコードを実行します。しかし、これはwhileループに入った後にその出力ステートメントがある場合にのみ機能します。私はそれが奇妙だと思います。「sysout」行は if ステートメントに何らかの影響を与えますか? どうやら上記の場合はそうです。
これがなぜなのかについてのアイデアはありますか?
編集:
(in the model class)
public final byte getLightState() {
return lightChanger.getLightValue();
}
(in lightchanger class)
public byte getLightValue() {
return light.getState();
}
(in the light class)
public final byte getState() {
return this.state;
}