java - 在 Java 中为枚举值设置空字符串

标签 java enums

我在 Java 中有一个对象,我试图从具有以下结构的枚举类中设置它。

public enum Code {
    CODE_A,
    CODE_B,
    CODE_C,
    CODE_D,
    CODE_E,
    CODE_F,
    EMPTY("")
}

想要将我的对象设置为空字符串值。 IE。 Object.setCode(Code.EMPTY)

当我查看我的对象时,它应该有 "" 而不是 EMPTY 作为属性代码的值。

有人可以建议我可以使用什么解决方法吗?我不想修改如下所示的 Object.setCode setter:

public void setCode(Code code) {
    this.code = code;
}

还有一个问题是 Object.setCode(必须是对象代码类型)

最佳答案

您可以简单地为每个枚举分配一个值并覆盖 toString() 方法,以便调用 Code.EMPTY 返回值“”而不是“EMPTY”

enum Code{

    CODE_A("STRING_A"),
    CODE_B("STRING_B"),
    EMPTY("");

    // Assigning a value to each enum
    private final String code;
    Code(String code){
        this.code = code;
    }

    // Overriding toString() method to return "" instead of "EMPTY"
    @Override
    public String toString(){
        return this.code;
    }

}

因此运行 Code.CODE_A 将返回“STRING_A”
并运行 Code.EMPTY 将返回 ""

关于java - 在 Java 中为枚举值设置空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40168744/

相关文章:

java - 取消 CountDownTimer Android Java

java - 如何在 Java 中明智地绕过 SSL 身份验证 URL 连接?

java - 比较 Java 中的枚举

c++ - 在 Objective c 中从 NSNotification 中的 Userinfo 转换 NSEnum 失败

c++ - 如何在 C++ 中的不同翻译单元之间共享枚举实例?

java - 安全的多态性实践?

java - 如何在jsp中显示位于服务器根目录下的图像

java - Eclipse Hadoop HDFS 异常

c++ - 枚举类型的 Notype 模板的特化 - 错误 : template argument is invalid

c# - 在 C# 中,我可以使用反射来确定枚举类型是 int、byte、short 等吗?