我當時正在糊弄我如何設置我的封裝。程序執行是非順序的。爲什麼?
但我的程序正在以意想不到的順序執行。這裏是我的,而簡單的代碼:
「主」:
package research.debug;
public class Main {
public static void main(String[] args) {
Boolean b = Boolean.TRUE ;
Debug.black.printVariable(b, "b") ;
Debug.red.printVariable(b, "b") ;
System.out.println("SUPPOSED to be inbetween...") ;
Debug.black.println("Hello") ;
Debug.red.println("Howdie") ;
}
}
「調試」:
package research.debug;
public class Debug {
public static final Output black = new Output(Output.BLACK) ;
public static final Output red = new Output(Output.RED) ;
}
最後, 「輸出」:
package research.debug;
public class Output {
public static final int BLACK = 0 ;
public static final int RED = 1 ;
private int outputMode = 0 ;
public Output(int outputMode) {
this.outputMode = outputMode ;
}
public void println(String msg) {
if(outputMode == Output.BLACK) {
System.out.println("Printed with black font: " + msg) ;
} else {
System.err.println("Printed with red font: " + msg) ;
}
}
public void printVariable(Object variable, String variableName) {
println(variableName + " = \"" + variable + "\"") ;
}
}
預期產出將爲:
印有黑色字體:B = 「真」
印有紅色字體:B = 「真」
應該是插圖中......
印有黑色字體:你好
印有紅色字體:Howdie
而是超出了預期秩序的,就像這樣:
印有黑色字體:B = 「真」
應該是插圖中......
印有黑色字體:你好
印有紅色字體:B =「真「
印刷用紅色字體:Howdie
發生了什麼事?
編輯:有時候「應該在之間」消息移動。沒有我改變代碼。
哇我從來不知道這一點。它用我的代碼解釋了一些事情 – TheLQ 2011-02-03 21:52:38