gpt4 book ai didi

一组值的 Java 验证方法

转载 作者:行者123 更新时间:2023-12-01 14:59:53 24 4
gpt4 key购买 nike

我正在尝试验证一组值“RecordStatus”和“Condition”。提出了以下方法。

  1. 使用字符串 recordStatus 和条件定义类 RecordStatusCodition。

  2. 定义一个 RecordStatusCoditionValidator 类,实现如下

ArrayList validList = new ArrayList() {{

                  add(new RecordStatusCodition ("CREATED","A"));
add(new RecordStatusCodition ("INSERTED","B"));
add(new RecordStatusCodition ("INSERTED","A"));
}};
public boolean isProcessed(RecordStatusCodition recordStatusCodition ) {
return checkList.contains(recordStatusCodition);
}
}

这个类正在从我的其他地方的代码中调用以检查条件

  if(!RecordStatusCoditionValidator.isProcessed(new RecordStatusCodition("","")))
// do processing
}

与上面类似,还有不同列表的其他各种条件,可能需要经常更改

虽然这工作正常,但我需要知道是否有更好的方法,因为这是我的代码的大部分将依赖的东西?

最佳答案

我建议您使用Map(HashMap实现)而不是ArrayList。通过这种方式,您可以保留对象的标识符(在本例中为 AB)并将其状态存储为值。然后,您的 isProcessed 方法可以简化为

map.containsKey(key); //Where key is either "A", "B", etc.

此映射不应该是类中的原始字段。我建议您将其包装在自己的对象中,您可以在应用程序中引用该对象,而不是原始 map 。这将使您能够控制不同的操作,并允许您在这些操作中进行一些预处理或后处理。

如果您愿意,您的 RecordStatusCondition 类也可以重构为枚举,定义给定对象可以具有的条件范围:

RecordStatusCondition.CREATED;
RecordStatusCondition.INSERTED;

然后,您可以添加一个像这样的对象:

recordStatusContainer.put(record.getId(), RecordStatusCondition.CREATED);

您也可以使用 get() 方法相当容易地获取状态,但请记住,如果您使用自己的对象作为键,则必须重新定义 hascode()equals() 才能正常工作。

作为一个侧面建议,如果可能的话,您可以让您的 RecordStatus (或此处代表您的主要逻辑单元的任何对象)通过添加 RecordStatusCondition 字段来了解其当前条件到它。

关于一组值的 Java 验证方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13823809/

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