繁体   English   中英

将枚举常量值设置为 java 中的 hashmap 键

[英]Set Enum constant values as hashmap key in java

我在下面定义了枚举。 我已经声明了一个 Hashmap,其密钥为枚举。 当我尝试将枚举常量值作为 hashmap 中的键时,键将与“QUESTION_FIRST”一起存储,而我希望它是“firstQuestion”

@Getter
public enum Question {

    QUESTION_FIRST("firstQuestion"),
    QUESTION_SECOND("secondQuestion");

    private final String value;

    Question(String value){
        this.value = value;
    }

    public String getValue(){
        return value;
    }
}

public void testMethod(){
Map<Question, Integer> map = new HashMap<>();
map.put(QUESTION_FIRST.getValue(), 1);
}

Map<Question, Integer>只能将QUESTION_FIRST作为键。 您有以下三种选择:

  • 更改QuestiontoString()以便它打印出"firstQuestion" ,但实际值仍将是QUESTION_FIRST
  • Map更改为Map<String, Integer> ,因此map.put(QUESTION_FIRST.getValue(), 1); 将工作
  • 放弃让"firstQuestion"成为 map 中的关键的愿望。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM