以@("at"符号开头的Java变量)

标签 java enums hashmap naming-conventions

我的枚举中有一些变量由于某种原因必须以“@”开头,例如:

public enum PR304MainDb {
    @MODE,
    @USERID,
    @ROLES,
    @MAX_DOC_COUNT
}

我使用这些变量的方式是将它们放入HashMap...:

Map<String, Object> in = new HashMap<String, Object>();
in.put(PR304MainDb.@MODE.toString(), 5);

...然后在调用存储过程时使用 HashMap 作为参数(我无法更改该代码)。

此外,在通话后,我读取了结果并进行了一些比较,例如:

if (out.getKey().equals(PR304MainDb.@MAX_DOC_COUNT.toString())) {
//DO SOMETHING
}

我知道这些名称无效,但是有其他方法可以实现此目的吗?

最佳答案

是的,有一种方法 - 不要使用枚举常量名称(不要使用 YOUR_CONSTANT.toString() 作为名称)。

与其他类一样,枚举可以具有字段和方法。一些可能性:

public enum PR304MainDb_Possibility1 {
    MODE("@MODE"),
    USERID("@USERID"),
    ROLES("@ROLES"),
    MAX_DOC_COUNT("@MAX_DOC_COUNT");

    private PR304MainDb_Possibility1(String text) {
        this.text = text;
    }

    public final String text;
}

public enum PR304MainDb_Possibility2 {
    MODE,
    USERID,
    ROLES,
    MAX_DOC_COUNT;

    public String getText() {return "@" + name();}
}

关于以@("at"符号开头的Java变量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22502154/

相关文章:

java - if(false) vs. while(false) : unreachable code vs. 死代码

java - 如果 jquery ajax 调用出错应重定向到其他 jsp 页面

java - 如何使用 RSA 加密对 http 响应进行加密

ios - 具有关联值的枚举的数据模型

java - 如何在 Java 8 中使用 Java 7 HashMap?

java - 春网: Loading ModelMap from HTTP query parameters

python - 如何为 enum python 创建 getter

java - 你能重铸一个枚举吗?

Java HashMap ArrayList 操作

java - 使用 hashmap 值替换 String 出现错误