请看下面的代码。这里基于字符串常量,我实例化了不同类型的组件类。现在至少有 15 种不同类型的字符串常量。因此,如果我遵循这种模式,将会有 15 种不同的情况以及许多 if -else 块。有没有更好的方法来做到这一点?我希望通过尽可能少的代码更改来灵活地添加和删除案例。
public UIComponent initCellEditor(String editorType) {
UIComponent editControl = null;
if ("TbComboBoxCellType".equals(editorType)) {
editControl = new WebListEntryField();
editControl.setId("ComboBox");
} else if ("TbStringCellType".equals(editorType)) {
editControl = new WebInputEntryField();
editControl.setId("String");
} else if ("TbDateCellType".equals(editorType)) {
editControl = new WebDateEntryField();
editControl.setId("Date");
} else if ("TbDateTimeCellType".equals(editorType)) {
editControl = new WebDateTimeEntryField();
editControl.setId("DateTime");
} else {
//default editor is allways a text input
editControl = new WebInputEntryField();
editControl.setId("Input");
}
return editControl;
}
PS:我们使用的是 JDK 6 。所以不能使用切换字符串功能。