list - 将字符串值映射到字符串列表中的值的逻辑
问题描述
目前我在我的应用程序中有一个问题,如果我将值(类型)作为“6”并将 fcID 值作为 fcList 中除“OVERRIDE”之外的任何值,那么它不会像应有的那样评估为 false。如果我将类型的值设为“6”,将 fcID 设为“OVERRIDE”,则它可以工作,并且如果我为类型提供任何其他值,例如“1”、“2”、“3”等,它将评估为假如预期。
我有两种不同的方法,一种用于验证类型,另一种用于验证 fcID 列表是否有效。根据要求,如果它是“5”类型,则值可以是 fcList 中的任何值,而不是“OVERRIDE”,它应该返回为真。如果是类型“6”,则对于 fcID 应该只有“OVERRIDE”并返回 true。如果 Type 是“5”或“6”以外的任何值,并且输入的 fcID 无效(不在 fcList 中),它应该返回 false。
以下是我对这两种方法的代码:
//method for validating the type
public static boolean isTypeFormatValid (String type, String fcID) {
if (type.equals("5") || type.equals("6")) {
if (!(type.equals("5") && fcID.equals("OVERRIDE"))) {
return true;
}
}
return false;
}
//method for validating the fcID from an entity list where it only pulls for type 5 and 6 from the table for the fcID
public static boolean isfcIDValid(String value, List<FCIDS> fcList) {
for (FCIDS fc : fcList) {
if (fc.getFCId().equals(value)) {
return true;
}
}
return false;
}
在这种特殊情况下,如果类型为“5”且列表中的 fcID(“OVERRIDE”除外)正确,则它似乎评估为 true,如果类型为“6”且 fcID 为“OVERRIDE”,则评估为 true,如果类型为“5”且值为“OVERRIDE”,则为假,如果 fcID 不在 fcList 中,则为假,如果类型为 1、2、3、4、7、8 等,则为假,但将当类型为“6”并且 fcID 是 fcList 中除“OVERRIDE”之外的任何内容时,不会评估为 false。示例:Type = "6", fcID="validValueInList" 不会评估为假,但根据要求它应该为假。
在这一点上我有点卡住了,我不确定如何构建逻辑以实现以下情况:
- 类型 5 具有来自 fcList 而非 OVERRIDE 的值并返回 true
- 类型 6 只能映射到 fcList 中的值 OVERRIDE 并返回 true
- 5 或 6 以外的类型,以及具有类型 5 和 OVERRIDE 的 fcID 的场景,应返回 false。
- 任何不在 fcList 中的 fcID 都将评估为假。
任何帮助将不胜感激涵盖这些场景,其中唯一不起作用的是 type = "6", fcID = "validValueInListOtherThanOVERRIDE"。
解决方案
推荐阅读
- java - 使用 AJAX 选择重新加载 div 后的 Spring / Thymeleaf 模板问题(*localidad 的问题)
- node.js - 在创建反应项目时在“npx create-react-app my-app”之后运行命令“npm start”时出错
- wpf - 如何将工具提示放在按钮上以在 WPF 中启用和禁用
- amazon-web-services - 带有 ssl 的单个 alb 后面的私有子网中的几个域
- python - 如何在 Django 中按类别筛选产品?
- vba - 刷新子表单
- django-rest-framework - 从 Django REST 框架中的访问令牌获取用户详细信息 - 简单 JWT
- node.js - 当我使用 Model.find({}) 查找所有带有 mongoose 的文档时,我可以取回格式化的 json 响应吗?
- r - 保存文件并在绘图中显示
- r - 如何在R中的单独数据框中输出两个不同数据框的列