zoukankan      html  css  js  c++  java
  • && 操作符 使用注意——警示!!

    理论都知道,运用中,会无意犯规:

    (左表达式) && (右表达式) : 操作符,只有在 左表达式为 true 的情况下,才会执行 后面的 右表达式。

    错误的写法:【您能发现么】

     1         boolean flag = true;
     2         for(ConditionBO subjectCondition : subjectConditions){
     3             Integer relationTableFieldId = subjectCondition.getRelationTableFieldId();
     4             Integer relationId = publicDataUtil.getRelationIdByRelationFieldId(relationTableFieldId);
     5             Map<Integer, Boolean> dataFlagMap = relationDataFlagMapMapTemp.get(relationId);
     6             if(CollectionUtils.isEmpty(dataFlagMap)){
     7                 dataFlagMap = new HashMap<>();
     8                 relationDataFlagMapMapTemp.put(relationId, dataFlagMap);
     9             }
    10 
    11             List<Map<String, String>> bussDataList = relationBussDataMapListMap.get(relationId);
    12             List<Map<String, String>> ruleSuccessBussDataMapList = ruleSuccessBussDataMapListMapTemp.get(relationId);
    13             if(CollectionUtils.isEmpty(ruleSuccessBussDataMapList)) {
    14                 ruleSuccessBussDataMapList = new ArrayList<>();
    15                 ruleSuccessBussDataMapListMapTemp.put(relationId, ruleSuccessBussDataMapList);
    16             }
    17             flag = flag && this.judgeValues(flag, ruleSuccessBussDataMapList, dataFlagMap, bussDataList, subjectCondition); // 标记数据是否使用
    18 //            if(!flag)break;
    19         }

    正确的写法:

     1         boolean flag = true;
     2         for(ConditionBO subjectCondition : subjectConditions){
     3             Integer relationTableFieldId = subjectCondition.getRelationTableFieldId();
     4             Integer relationId = publicDataUtil.getRelationIdByRelationFieldId(relationTableFieldId);
     5             Map<Integer, Boolean> dataFlagMap = relationDataFlagMapMapTemp.get(relationId);
     6             if(CollectionUtils.isEmpty(dataFlagMap)){
     7                 dataFlagMap = new HashMap<>();
     8                 relationDataFlagMapMapTemp.put(relationId, dataFlagMap);
     9             }
    10 
    11             List<Map<String, String>> bussDataList = relationBussDataMapListMap.get(relationId);
    12             List<Map<String, String>> ruleSuccessBussDataMapList = ruleSuccessBussDataMapListMapTemp.get(relationId);
    13             if(CollectionUtils.isEmpty(ruleSuccessBussDataMapList)) {
    14                 ruleSuccessBussDataMapList = new ArrayList<>();
    15                 ruleSuccessBussDataMapListMapTemp.put(relationId, ruleSuccessBussDataMapList);
    16             }
    17             boolean innerFlag = this.judgeValues(flag, ruleSuccessBussDataMapList, dataFlagMap, bussDataList, subjectCondition); // 标记数据是否使用
    18             flag = flag && innerFlag;
    19             if(!flag)break;
    20         }

    后续再完善!

  • 相关阅读:
    产品经理做产品设计的九步法
    产品经理要懂多少技术?
    产品经理如何注重细节意识的培养
    产品经理如何在技术人员面前更有说服力?
    从程序员到项目经理:每个人都是管理者
    我的人才管理方式
    一个关于内部类的小例子
    java中的全局变量与静态变量的区别与联系?有时候为什么专门定义静态变量。(标题党~~)
    举一反三,一小步。
    中国移动的企业文化 ,以及中国移动都有那些业务?
  • 原文地址:https://www.cnblogs.com/bridgestone29-08/p/14537700.html
Copyright © 2011-2022 走看看