Java 如果任何函数调用返回false,则终止函数
这是一个Java函数,我在其中执行了验证,它检查表单的所有字段是否有效,并返回Java 如果任何函数调用返回false,则终止函数,java,android,data-structures,logic,Java,Android,Data Structures,Logic,这是一个Java函数,我在其中执行了验证,它检查表单的所有字段是否有效,并返回booleanvalue(valid-true或invalid-false)。如果任何字段无效,则整个表单无效。一切正常,但我想停止检查是否有任何函数返回false。所以我的意思是,如果isSharesDepositValid()返回false,那么它应该停止进一步检查函数并退出isFormValid()函数。如果返回true,则继续进行进一步检查。我可以为每个函数检查放置if语句,但我想知道是否还有其他最佳方法 pu
boolean
value(valid-true或invalid-false)。如果任何字段无效,则整个表单无效。一切正常,但我想停止检查是否有任何函数返回false。所以我的意思是,如果isSharesDepositValid()
返回false,那么它应该停止进一步检查函数并退出isFormValid()
函数。如果返回true,则继续进行进一步检查。我可以为每个函数检查放置if语句
,但我想知道是否还有其他最佳方法
public boolean isFormValid() {
boolean valid = isSharesDepositValid() && isPlotAmtDepositValid()
&& isDevFundDepositValid() && isConstructionDepositValid()
&& isOthersDepositValid() && isSharesDueValid(true) && isSarahDueValid()
&& isANSDueValid() && isDevFundDueValid() && isOthersDueValid();
return valid;
}
解决办法是:
public boolean isMoneyFormValid() {
boolean valid = isSharesDepositValid() ;
if (valid==false){
return false;
}
valid = isPlotAmtDepositValid() && valid;
if (valid==false){
return false;
}
valid = isDevFundDepositValid() && valid;
if (valid==false){
return false;
}
......
}
我认为这不是一种更好的方法,也可能是一种替代方法,因为Java知道
&&
是逻辑的,也就是说,如果其中一个布尔值是false
,那么它就不关心其余的验证,只返回false
。
它对|
的作用完全相同,如果一个布尔值为true
,则它不关心其余的布尔值并返回true。
此外,您可以跳过该变量并简单地返回这些验证
public boolean isFormValid() {
return isSharesDepositValid() && isPlotAmtDepositValid()
&& isDevFundDepositValid() && isConstructionDepositValid()
&& isOthersDepositValid() && isSharesDueValid(true) && isSarahDueValid()
&& isANSDueValid() && isDevFundDueValid() && isOthersDueValid();
}
您使用的是短路和运算符,所以这不是已经按照您想要的方式运行了吗?您认为您当前的代码到底在做什么?&&确保如果遇到错误,它将停止处理以下条件如果您通过在另一个返回false后调用的方法中设置断点来测试代码,那么对所有函数的AND操作调用将返回true或false…@RushiVanga不知道等待我将简化问题,但是如果您知道,那么您必须理解,如果
isSharesDepositValid()
返回false
,那么之后就不会调用其他方法,它只返回false
。不会。我在函数调用中调用了setter方法,setorry您是对的,我的setter方法中可能存在一些问题。我检查过了,没有进一步检查