【问题标题】:Calling a method in else but not working在else中调用方法但不起作用
【发布时间】:2016-01-05 15:15:01
【问题描述】:
       } else {
            this.getSequenceDataWithPO(extractedData, extractedDateData);

        }
    }
    return hasbroData;
}

// Fetch data where po number is not null
/**
 * @param extractedData
 * @param extractedDateData
 * @return hasbroData
 */
private List<String> getSequenceDataWithPO(List<HasbroIssuanceAmmendExtractData> extractedData,
        List<HasbroIssuanceDateData> extractedDateData) {

我正在尝试在 else 块中调用 getSequenceDataWithPO。但是,当它到达 else 块时进行调试时,它不会执行该方法。我做错了什么?

【问题讨论】:

  • 你能分享更多代码吗?它是否进入if 块?你在getSequenceDataWithPO()方法里面设置断点了吗?
  • @Gaël 是的,如果阻止则进入。并且一旦它到达 else 块......它又回到 if。是的,我也在那里设置了断点。但从不执行 getSequenceDataWithPO
  • @Sam : 如果它进入if 块,你为什么期望它进入else 块?!它是一个或另一个,而不是两者......
  • @Gaël 是的,你是仪式......如果部分正确,它正在做它。但是,一旦它在其他情况下处于 else 条件,它应该执行该方法。这没有发生。

标签: java


【解决方案1】:

ifelse ifelse 语句应该这样考虑:

if:如果满足以下条件,则执行这些命令

else if:否则如果满足以下条件,则执行这些命令

else:否则,执行以下命令

这意味着条件语句是在一个链中执行的。一旦满足ifelse ifelse 链中的条件之一,则不会处理任何其他条件语句。由于您的else 块没有被执行,那么您可能已经满足了之前的ifelse if 语句的条件。为了检查两个相互独立的条件,只需使用两个单独的if 语句。

例如,在下面的代码中,单词“World”和“!”不会打印,即使 5 大于 2 并且 4 大于 1 也是如此:

if (5 > 2)
    System.out.print("Hello, ");
else if (4 > 1)
    System.out.print("World");
else
    System.out.print("!");

但是,在下一个示例中,“Hello”、“World”和“!”将被打印,因为三个条件是相互独立的:

if (5 > 2)
    System.out.print("Hello, ");
if (4 > 1)
    System.out.print("World");
if (0 == 0)
    System.out.print("!");

【讨论】:

    猜你喜欢
    • 2019-12-14
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多