gpt4 book ai didi

java:我怎样才能减少if(method1()&&method2()....&&method25())?

转载 作者:行者123 更新时间:2023-12-01 08:05:42 24 4
gpt4 key购买 nike

我对编程有些陌生。我需要编写一个 if 条件来检查 25 个方法,如果所有方法都返回 true,则只有控制进入 if block 。

所以我尝试了

if(meth1()&&meth2()&&meth3()&&meth4() ....... meth25()){

..... .....
}
else {
print("in else");
}

boolean meth1(){
if (valid){
return true;
}
else return false;

}



boolean meth2(){
if (valid){
return true;
}
else return false;

}

...
...
...

boolean meth25(){
if (valid){
return true;
}
else return false;

}

还有其他方法可以做到这一点吗?

编辑:我在这里发布我的实际代码......

if(v.isValidRecordType(recordType)&& v.isValidClientReferance(clientReferance)&&     v.isValidInitials(initials) && v.isValidPrefixes(prefixes)&& v.isValidLastname(lastname)&& v.isValidGender(gender)&& v.isValidDateOfBirth(dateOfBirth)
&& v.isValidStreetName(streetName)&& v.isValidHouseNumber(houseNumber)&& v.isValidHNExtension(hnExtension)&& v.isValidPostalCode(postalCode)&& v.isValidTownName(townName)&& v.isValidTelephone1(telephone1)&& v.isValidTelephone2(telephone2)&& v.isValidEmail(email)

&& v.isValidPrincipalDebit(principalDebit)&& v.isValidCollectionFee(collectionFee)&& v.isValidAdditionalFees(additionalFees)&& v.isValidTotalDebit(totalDebit)&& v.isValidDateOfInvoice(dateOfInvoice)&& v.isValidActivationDateCollectionFile(activationDateCollectionFile)
&& v.isValidBranch(branch)&& v.isValidKnownOnAddress(knownOnAddress)&& v.isValidFilters(filters))
{
System.out.println("processed");
continue;
}
else{
System.out.println("in the record having clientReferance :"+clientReferance +"\n");
}

和 isValid*** 方法看起来像..

public boolean isValidClientReferance(String ClientReferance){
String pattern= "^[a-zA-Z0-9]*";
if(ClientReferance.matches(pattern) && mandatory(ClientReferance) ){
return true;
}
System.out.println("Invalid ClientReferance");
return false;
}

最佳答案

拥有 25 个条件本身就是一个坏兆头。已经有人建议将它们分组,我会这样做。如果你不能,那么写类似

void allmightyCondition(....) {
if (!method1()) return false;
if (!method2()) return false;
...
if (!method25()) return false;
return true;
}

这使得它更具可读性。它还为注释留出了一些位置,并允许更轻松地重新排序条件(这可能对速度有用)。

Java 缺少函数指针是一件相当好的事情(我认为它们不值得)。如果您确实需要一个循环,您可以创建 Predicate 的 25 个实现并使用它们。如果没有 JDK8,它会有点冗长。不管怎样,在你的例子中没有任何意义,只有当你真正需要它时才使用它。

关于java:我怎样才能减少if(method1()&&method2()....&&method25())?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21871639/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com