【问题标题】:Enumerated types and Strings枚举类型和字符串
【发布时间】:2014-01-25 00:01:35
【问题描述】:

我想为每个枚举分配一个字符串,这样当在枚举上调用toString() 方法时,它将返回该字符串。我根据自己能够找到的内容尝试了以下代码,但出现错误:

RecycleCode(String) 未定义。

如何将字符串分配给枚举,然后使用toString() 方法将其返回?

public enum RecycleCode {
    ONE("PET"), 
    TWO("HDPE"), 
    THREE("PVC"), 
    FOUR("LDPE"), 
    FIVE("PP"), 
    SIX("PS"), 
    SEVEN("OTHER"), 
    ABS("ABS");

    public String toString() {
        return name();
    }
}

【问题讨论】:

  • 你认为ONE("PET") 会做什么?
  • 您的枚举中需要一个非默认构造函数:RecycleCode(String s)...

标签: java string enums


【解决方案1】:

您在每个枚举声明中都传递了一个String,但您没有接受String 的构造函数,也没有一个实例变量来保存它。试试

private String name;
private RecycleCode(String name) {
    this.name = name;
}

然后你可以在你的toString()方法中引用实例变量name

    return name;

【讨论】:

    【解决方案2】:
    public enum RecycleCode {
    ONE("PET"),
    TWO("HDPE"),
    THREE("PVC"),
    FOUR("LDPE"),
    FIVE("PP"),
    SIX("PS"),
    SEVEN("OTHER"),
    ABS("ABS");
    
    private String name;
    
    public RecycleCode(String name) {
       this.name = name;
    }
    
    public String toString(){
    
        return name;
    
        }
    }
    

    【讨论】:

    • return name() 应该是return name
    • 是的,没看过这个:) 谢谢。
    猜你喜欢
    • 2014-07-23
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多