首页 > 解决方案 > 从java中的if语句(具有多个AND类型的条件)中查找失败的条件

问题描述

我正在努力研究 Java 中的 if 语句。它是这样的。假设 if 语句中有多个条件与 AND 运算符连接,并且由于其中一个条件失败而导致条件失败。然而,很难找到哪个条件失败了,因为整个场景都失败了。我想知道是否有一些操作或逻辑,我们可以从中识别导致失败的条件。

注意:嵌套 if 可以,但不太可行,所以想从社区获得一些意见。提前致谢。

if (!(employee.validateemployee(employee) && employee.Validateweb(message))) {  

    log.info(" Mandatory Validation Failed !!");
    validationHelper.DBinsert(exchange, message);                                   
}

标签: javaif-statement

解决方案


不优雅,但如果您真的需要失败条件的索引,您可以使用流执行以下操作:

Stream<Boolean> myBools = Stream.of(true,false,true,true);           
int failedAt = myBools.takeWhile(Boolean::booleanValue).collect(Collectors.toList()).size() + 1;
System.out.println("Failed at position " + failedAt);

在你的情况下

if (!(employee.validateemployee(employee) && employee.Validateweb(message))) {  
   int failedAt = Stream.of(employee.validateemployee(employee), employee.Validateweb(message))
                        .takeWhile(Boolean::booleanValue)
                        .collect(Collectors.toList())
                        .size() + 1;
   log.info(" Mandatory Validation Failed !! at position: " + failedAt );
   validationHelper.DBinsert(exchange, message);                                   
}

推荐阅读