このメソッドは、フォーム内のテキストフィールドごとに異なる検証メソッドを呼び出し、マップ内のint []配列は、テキストフィールドで実行する検証のメソッドまたはタイプを決定します。しかし、この方法の循環的複雑度は10です。より良い代替案や、このコードを改善するために何ができるかを提案してください。
public final boolean validateFields(final HashMap<JTextField, int[]> textFieldMap) {
boolean flag = false;
for (Map.Entry<JTextField, int[]> entry : textFieldMap.entrySet()) {
JTextField field = entry.getKey();
for (int constant : entry.getValue()) {
switch (constant) {
case Constants.VAL_CHAR : flag = validateChar();
break;
case Constants.VAL_DATE : flag = validateDate();
break;
case Constants.VAL_DUPLICATE : flag = validateDuplicate();
break;
case Constants.VAL_EMAIL : flag = validateEmail();
break;
case Constants.VAL_LENGTH : flag = validateLength();
break;
case Constants.VAL_NUMERIC : flag = validateNumeric();
break;
case Constants.VAL_STRING : flag = validateNumeric();
break;
default : flag = validateNotNull();
break;
}
}
}
return flag;
}