我是使用 Java Enums 的新手,我已经读过比较字符串文字的替换 IF 逻辑应该替换为 Enum。我不太明白如何用枚举替换下面的代码,有什么想法吗?基于传递给 applyEQ 的 col 值,我需要根据它的值执行下一个方法调用。我确实提前知道 col 的可能值,并且我现在正在使用常量文件。我应该创建一个枚举并将其放在我的常量接口文件中吗?
public class FilterHelper implements IFilterHelper {
private final EQuery eQuery;
public FilterHelper(EQuery query) {
eQuery = query;
}
@Override
public void applyEQ(String col, String val) throws Exception {
int return = 0;
if (col.equalsIgnoreCase(EConstants.NAME)) {
ret = Sample.addName(eQuery, val);
} else if (col.equalsIgnoreCase(EConstants.KEYWORDS)) {
ret = Sample.addKey(eQuery, val);
} else if (col.equalsIgnoreCase(EConstants.ROLE)) {
ret = Sample.addRole(eQuery, val);
}
if (return != 0) {
throw new Exception("failed");
}
}
}
EConstants.java
public final class EConstants {
public static final String NAME = "cewName";
public static final String KEYWORDS = "cewKeywords";
public static final String ROLE = "cewRole";
}