私はJava列挙型を使用するのが初めてで、文字列リテラルを比較するIFロジックを列挙型に置き換える必要があることを読みました。以下のコードを列挙型に置き換える方法がよくわかりません。アイデアはありますか? applyEQ に渡される col 値に基づいて、その値に基づいて次のメソッド呼び出しを行う必要があります。col の可能な値を事前に知っているので、今のところ定数ファイルを使用しています。Enum を作成して、Interface of Constants ファイルに配置する必要がありますか?
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";
}