我真搞不清楚這個問題,我有一個返回boolean值的方法 - mainMethod(),所以我用的結果在邏輯表達式,在這裏看到:Java方法不calledin表達
boolean b = this.someMethod();
b = b && this.mainMethod(); // method is not called
我檢查jar文件通過反編譯器一切正常。然後我將上面的行更改爲:
boolean b = this.someMethod();
boolean result = this.mainMethod(); // now method is called!!!
b = b && result;
是否有人知道這會發生什麼?我不知道,這看起來很奇怪。
如果'B'已經在第一個例子中'false'它不會繼續超過'&&'。 – AntonH
OH !!!!!當然可以......謝謝 – Martin
您可以使用按位運算符'&&來避免短路。您可以通過使代碼自行記錄來避免這樣的錯誤。沒有人知道'mainMethod()'返回'true'或'false'意味着什麼。如果你已經將它分配給一個像'boolean ranSuccessfully'這樣的變量,那麼你應該避免這個錯誤,並且清楚你的代碼在做什麼。 – Rainbolt