首页 > 解决方案 > 避免多个 if/else 条件

问题描述

使用 Java 6

有 70 多个属性要检查如下。如下重构代码的最佳方法是什么?

    if(0 == compareField1) {            
        if(0 == compareField2) {
            if(0 == compareField3) {
                if(0 == compareField4) {
                    if(0 == compareField5) {
                        ......
                    } else {
                        return compareField5;
                    }
                } else {
                    return compareField4;
                }
            } else {
                return compareField3;
            }               
        } else {
            result = compareField2;
        }           
    } else {
        result = compareField1;
    }

标签: java

解决方案


您可以使用一个整数数组,其中索引为 X 的单元格将保留字段编号 X 的值

final int fieldsCount = 60;
int[] fields = new int[fieldsCount ];
fields = loadFields(); // here you are populating fields

for(int i = 0; i < fieldsCount ; i++) if(fields[i] != 0) return fields[i];

// further logic (else)

推荐阅读