如何解决在多个条件下实现逻辑方面需要帮助
我需要一些帮助来确定实现以下条件的逻辑:
我有一个搜索条件请求,可以包含大约10种可能的组合。我正在使用适当的错误消息为其编写请求验证。
这些是我的条件:
if (request.getFullName() == null && request.getFullNameEs() == null && request.getBirthDate() == null && request.getNat() == null &&
request.getGender() == null) {
validationErrors.add("Name criteria search is not proper");
}
if (request.getPassportNo() != null) {
if (request.getPassportNationality() == null && request.getBirthYear() == null) {
errors.reject(NULL_OR_EMPTY_FIELD_ERROR,"Please pass passportNationality or birthYear ");
}
if (request.getPassportTypeId() == null || request.getPassportNationality() == null) {
errors.reject(NULL_OR_EMPTY_FIELD_ERROR,"Please pass passportTypeId and/or passportNationality");
}
} else {
errors.reject(NULL_OR_EMPTY_FIELD_ERROR,"Please pass passportNo");
}
if (request.getIdNo() == null) {
if (request.getIdType() == null || request.getIdNationalityId() == null) {
errors.reject(NULL_OR_EMPTY_FIELD_ERROR,"Please pass IdType and/or IdNationalityId");
return;
}
} else {
errors.reject(NULL_OR_EMPTY_FIELD_ERROR,"Please pass idNo");
}
if (request.getPersonNo() == null && request.getPersonTypeId() == null) {
errors.reject(NULL_OR_EMPTY_FIELD_ERROR,ERROR_MESSAGE);
}
if (request.getSponsorNo() == null && request.getSponsorTypeId() == null && request.getPpsId() == null) {
errors.reject(NULL_OR_EMPTY_FIELD_ERROR,ERROR_MESSAGE);
}
if (request.getSponsorNo() == null) {
errors.reject(NULL_OR_EMPTY_FIELD_ERROR,ERROR_MESSAGE);
}
if (request.getPersonNo() == null && request.getPersonTypeId() == null) {
errors.reject(NULL_OR_EMPTY_FIELD_ERROR,ERROR_MESSAGE);
}
在一个请求中,仅应传递一个条件,并且特定条件失败,那么我希望验证中断并仅显示该特定错误消息,而不显示消息列表。
如何实现这种行为?
解决方法
如果我正确地理解了您,您可以简单地将其实现为一个函数,并在条件为真时返回。
,您可以执行以下操作。使用一个块包含条件测试,然后有选择地突破该块。
int a = 10;
next:
{
if (a % 2 == 0) {
System.out.println("a is even");
break next;
}
if (a > 6) {
System.out.println("a > 6");
}
if (a > 7) {
System.out.println("a > 7");
}
}
- 如果a是偶数,则将其打印并跳出该块。
- 如果a为奇数,它将继续处理所有剩余条件
请注意,您可以具有嵌套块和break语句。结合正确使用else
,这将有助于解决您的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。