gpt4 book ai didi

java - Java 是否支持枚举的非递增值?

转载 作者:行者123 更新时间:2023-12-02 02:10:01 27 4
gpt4 key购买 nike

我有一个定义 Map<Integer, String> commands 的类变量,其中 Integer 是命令编号,String 是命令名称。

我没有将其设为 enum 的原因是我的印象是 enum 中的值必须是连续的,id est 加一(但命令键不会)。看了下面的代码,我觉得我的这个假设是错误的:

public enum HttpStatusCode {
OK(200), NO_CONTENT(204), NOT_FOUND(404) /* .... */ ;
}

枚举中的值是否必须为每个值加一,或者值之间是否允许有间隙?

最佳答案

允许有间隙,事实上您可以定义一个实际的构造函数。

public enum HttpStatusCode {
OK(200), NO_CONTENT(204), NOT_FOUND(404);
private int status;
private HttpStatusCode(int st) { status = st; }
public int getStatus() { return status; }
}

您仍然可以通过ordinal()获得增量值。

关于java - Java 是否支持枚举的非递增值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50155488/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com