detail refactor

本文介绍了一种在软件开发中控制UI元素显示与隐藏的方法。通过调用特定函数实现细节块的显示(detailonblock)及初始化加载对话框组件(componentsinitloaddetaildlg)。此外,还介绍了如何通过设置display属性来打开(opendetail)或关闭保存(closeorsave)这些UI元素。
detail on block(model)
components init load detail dlg(set display none)
open detail:set display  block
close or save:set display none
private List<String> validateConditions(IndexRuleForm indexRule) { List<String> errorList = new ArrayList<>(); // 附加条件为空,无需校验 final List<IndexRuleDetailsForm> detailList = indexRule.getDataList(); for (IndexRuleDetailsForm detail : detailList) { final List<AdditionalConditionDto> dtos = detail.getAdditionalConditions(); if (dtos == null) { return new ArrayList<>(); } // 步骤1: 按 `conditionTypeCode` 和 `conditionKey` 分组 Map<String, List<AdditionalConditionDto>> groupedConditions = dtos.stream() .collect(Collectors.groupingBy( dto -> dto.getConditionType() + "::" + dto.getConditionKey() )); // 步骤2: 遍历每个分组,进行内部校验 for (Map.Entry<String, List<AdditionalConditionDto>> entry : groupedConditions.entrySet()) { List<AdditionalConditionDto> group = entry.getValue(); // 步骤2.1: 每个元素起始值必须小于结束值 for (AdditionalConditionDto dto : group) { if (dto.getStartValue().compareTo(dto.getEndValue()) >= 0) { errorList.add(String.format(RULE_DATA_ERROR_FORMAT, indexRule.getBaseDataName(), detail.getSequenceNum(), "附加条件:同一附加条件起始值必须小于结束值;")); } } if (group.size() <= 1) { continue; // 分组内只有一个元素,无需比较区间重叠 } // 步骤3: 将 DTO 转换为 Interval 对象(此过程已包含起始值<结束值的预校验) List<Interval> intervals = group.stream() .map(Interval::new) // 这里如果起始值>=结束值,会直接抛出异常 .collect(Collectors.toList()); // 步骤4: 在分组内进行两两比较,检查区间重叠 for (int i = 0; i < intervals.size(); i++) { for (int j = i + 1; j < intervals.size(); j++) { Interval interval1 = intervals.get(i); Interval interval2 = intervals.get(j); if (interval1.overlapsWith(interval2)) { // 如果发现重叠 errorList.add(String.format(RULE_DATA_ERROR_FORMAT, indexRule.getBaseDataName(), detail.getSequenceNum(), "附加条件:同条件类型和条件名数据不能重叠;")); return errorList; } } } } } return errorList; } } 这段代码sonar校验没通过,说是 Refactor this code to not nest more than 4 if/for/while/switch/try statements. 怎么解决
06-21
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值