Java 如果要执行,为什么为假?

Java 如果要执行,为什么为假?,java,if-statement,Java,If Statement,以下是WSO2 org.WSO2.carbon.hostobjects.sso包中SAMLSSORelyingPartyObject的代码片段 在调试时,我看到即使这个if表达式的计算结果为false,也会执行ScriptException。有人对此有解释吗 编辑 原因是我在EclipseIDE中调试错误的jar。服务器jar版本与我调试的jar版本不同。即使IDE显示调试在这一行。实际上,调试不在if块的范围内,您一定是误解了在调试中看到的内容。如果If中的完整逻辑表达式的计算结果为false

以下是WSO2 org.WSO2.carbon.hostobjects.sso包中SAMLSSORelyingPartyObject的代码片段

在调试时,我看到即使这个if表达式的计算结果为false,也会执行ScriptException。有人对此有解释吗

编辑


原因是我在EclipseIDE中调试错误的jar。服务器jar版本与我调试的jar版本不同。即使IDE显示调试在这一行。实际上,调试不在if块的范围内,您一定是误解了在调试中看到的内容。如果If中的完整逻辑表达式的计算结果为false,则所示括号内的代码将不会执行。也许异常是从其他地方抛出的,或者完整的逻辑表达式实际计算为true

这个表达是什么?你知道if语句是如何工作的吗?你知道布尔运算符是如何工作的吗?你能解释一下你理解的东西吗?这样我们就不必解释20%的Java,希望抓住你不懂的东西?调试时的参数是什么?这些都是downvote.command行始终为stringI的原因,我没有downvote,但我猜这是因为如果表达式的计算结果为false,它将无法执行。也许你被“!”弄糊涂了?好如果argLength==1&&args[0]是String?类型,该怎么办?。只是说说而已。@lakshman试试put System.out.printargLength!=1 || !if语句中的args[0]instanceof字符串。如果输出为假,那么我将把你的问题向上投票1000次
if (argLength != 1 || !(args[0] instanceof String)) {
    String errorMsg = "Invalid argument. SAML response is missing.";
    log.error(errorMsg);
    throw new ScriptException(errorMsg);
}