我有一个Enum来处理表中的列。它正在生产中。
public enum Column {
NAME("m_Name", "Name", "TEXT"), ADDRESS("m_Address", "Address", "TEXT");
private String value;
private String label;
private String sortType;
private Column(String value, String label, String sortType) {
this.setValue(value);
this.setLabel(label);
this.setSortType(sortType);
}
}
我现在需要添加我需要动态的自定义列。我意识到我不能让枚举动态。有什么替代方案?
答案 0 :(得分:4)
如果您调整Column
以实施interface
而不是在其他地方使用Column
,请使用interface
,然后您可以使用普通类来增加动态列。
interface DbColumn {
String getLabel();
String getValue();
}
public enum Column implements DbColumn {
NAME("m_Name", "Name"), ADDRESS("m_Address", "Address");
private final String value;
private final String label;
private Column(String value, String label) {
this.value = value;
this.label = label;
}
@Override
public String getLabel() {
return label;
}
@Override
public String getValue() {
return value;
}
}
public class DynamicColumn implements DbColumn {
private final String value;
private final String label;
private DynamicColumn(String value, String label) {
this.value = value;
this.label = label;
}
@Override
public String getLabel() {
return label;
}
@Override
public String getValue() {
return value;
}
}