当前位置: 首页 > 面试题库 >

我可以在Java中设置枚举起始值吗?

强志学
2023-03-14
问题内容

我使用枚举来使一些常量:

enum ids {OPEN, CLOSE};

OPEN值为零,但我希望它为100。可能吗?


问题答案:

Java枚举不同于C或C ++枚举,它们实际上只是整数的标签。

Java枚举的实现更像类-甚至可以具有多个属性。

public enum Ids {
    OPEN(100), CLOSE(200);

    private final int id;
    Ids(int id) { this.id = id; }
    public int getValue() { return id; }
}

最大的区别是它们是 类型安全的 ,这意味着您不必担心将COLOR枚举分配给SIZE变量

有关更多信息,请参见http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html。



 类似资料:
  • 问题内容: 我有一个枚举,看起来像 我想做类似的事情 我出于教学目的简化了该示例,但是对于我的实际示例而言,这对我真的很有用。我可以用Java做到吗? 问题答案: 是的Enum是Java中的类: 但是在您的真实系统中,由于有固定类型的动物,我也将其设为Enum。 还要注意,使任何实例变量也很重要。 您可以在Java Language Specification中 找到有关它的更多详细信息。

  • 问题内容: 是否可以在Java枚举中使用,还是需要使用?在我的测试中,它始终有效,但是我不确定是否可以保证。特别是,在枚举上没有方法,因此我不知道是否有可能获得一个枚举,该枚举将返回不同于的值。 例如,这样可以吗: 还是我需要这样写: 问题答案: 仅需2美分:这是Sun发布的Enum.java的代码,并且是JDK的一部分:

  • 问题内容: 该方法返回枚举实例的序数。 如何设置枚举的序数? 问题答案: 您无法设定。它始终是常量定义的序数。请参阅Enum.ordinal()的文档: 返回此枚举常量的序数(其在枚举声明中的位置,其中初始常量的序数为零)。大多数程序员都不会使用这种方法。它设计用于复杂的基于枚举的数据结构,例如EnumSet和EnumMap。 实际上-您不需要。如果要一些整数属性,请定义一个。

  • 问题内容: 我正在阅读Swift浏览文档,并且遇到了问题。这是代码: 该功能将无法正常工作,我想知道是否有一种方法可以更改枚举的关联值,以及如何更改? 问题答案: 最直接的问题是,当您应该使用声明不可变变量(用声明)时,您尝试更改其值。但是,由于您的变量包含关联值的副本,因此,这不会解决此特定问题,但是通常这是您需要注意的。 如果要解决此问题,则需要将该函数声明为muting函数,并根据具体情况将

  • 问题内容: 只是在玩,并想出了一个甜蜜的方法来使用此方法在JavaEnum toString()方法中向s 添加功能。 一些进一步的修改使我 几乎 也可以添加整洁的(即不引发异常)反向查找,但是存在问题。报告: 有办法吗? 这里的目的是(通过一个接口实现,使用像我在链接的答案中添加的方法一样)静默地添加一个在不引发异常的情况下执行该功能的方法。可能吗?现在显然可以扩展- 到目前为止,我的主要Jav

  • 问题内容: 我想分享一些枚举属性。就像是: 我知道了为什么不能继承(因为状态在中没有表示形式),但是我仍然想说“ ActionState就像具有更多选项的State,并且ActionState可以获取类型为State的输入,因为它们也属于输入ActionState” 我知道如何获得上述逻辑来复制案例并在函数中进行切换。但我正在寻找更好的方法。 我知道枚举不能在Swift中继承,并且我已经阅读了sw