You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用循环简化57款定制产品报价的重复校验逻辑?

简化多产品报价校验逻辑的方案

实现步骤:

  1. 统一管理CA实例
    把所有CA1到CA57的实例按顺序存入列表,方便后续循环操作:

    // 初始化时创建列表,按1到57的顺序添加CA实例
    List<CA> caInstances = Arrays.asList(CA1, CA2, CA3, ..., CA57);
    
  2. 定位触发按钮对应的行
    遍历列表,找到触发当前事件的按钮所属的CA实例,确定需要校验的最大行索引:

    int targetLineIndex = -1;
    for (int i = 0; i < caInstances.size(); i++) {
        CA currentCA = caInstances.get(i);
        if (e.getSource() == currentCA.BTNgeneratequoteCA1) {
            targetLineIndex = i;
            break;
        }
    }
    if (targetLineIndex == -1) {
        return; // 非目标按钮触发,直接退出
    }
    
  3. 逐行校验合规性
    从第1行(列表索引0)开始,到触发按钮对应的行(索引targetLineIndex),逐个校验generateCA1是否为true:

    boolean allProductsValid = true;
    for (int i = 0; i <= targetLineIndex; i++) {
        if (!caInstances.get(i).generateCA1) {
            allProductsValid = false;
            break; // 只要有一个产品不合规,立即终止校验
        }
    }
    
  4. 执行报价生成逻辑
    校验通过后,执行原有的报价生成代码:

    if (allProductsValid) {
        try {
            FillAllKIS();
            E2fill();
            FillQuote();
        } catch (IOException y) {
            Logger.severe(y.getMessage());
        }
        RecordAllLines();
    }
    

替换效果

将原来57段重复的if判断逻辑,替换成上述4段代码即可。后续如果需要调整产品数量(比如增减行数),只需修改caInstances列表的元素,无需修改校验逻辑,极大提升代码可维护性。

内容的提问来源于stack exchange,提问作者Gareth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 03:54:28