gpt4 book ai didi

java - 如何删除许多 If block

转载 作者:行者123 更新时间:2023-12-02 02:34:30 25 4
gpt4 key购买 nike

我有一个 json 请求,其中几乎没有必填字段。在我的代码中,初始检查是检查必需的字段,如果缺少这些字段,则抛出缺少字段名称的错误。实现这一目标的最佳方法是什么?下面是我的代码

Boolean isRequiredFlag = true;
if(String.isBlank(custReq.partnerId) || String.isBlank(custReq.partnerRepName) || String.isBlank(custReq.name.first) || String.isBlank(custReq.name.last)
|| String.isBlank(custReq.address.addrLine1) || String.isBlank(custReq.address.city) || String.isBlank(custReq.address.state) || String.isBlank(custReq.address.postalCode)
|| String.isBlank(custReq.phones.phone)){
isRequiredFlag = false;

}

上面的 block 有效,但无法获取哪些字段为空。一种可能的解决方案是做很多 if 语句,但如果有人能提出更好的方法来做到这一点,我将非常感激。

最佳答案

一种方法是创建所需字段名称及其值的映射,然后过滤该映射以查找空白字段值:

Map<String, String> requiredFields = new HashMap<String, String>();
requiredFields.put("partnerId", custReq.partnerId);
requiredFields.put("partnerRepName", custReq.partnerRepName);
requiredFields.put("name.first", custReq.name.first);
...
requiredFields.put("phones.phone", custReq.phones.phone);

要过滤 map 并收集具有空值的字段名称(在 Java 8 中):

List<String> missingFieldNames =
requiredFields.entrySet()
.stream()
.filter(entry -> StringUtils.isBlank(entry.getValue()))
.map(entry -> entry.getKey())
.collect(Collectors.toList());

现在您有了缺少的字段名称。并设置标志:

Boolean isRequiredFlag = missingFieldNames.isEmpty() ? true : false;

关于java - 如何删除许多 If block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46592927/

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