我真搞不清楚这个问题,我有一个返回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