java - 在 Java 枚举中使用范围的种类

标签 java enums range

我可以用特定的 int 值定义枚举值,但我也想在 Java 枚举中表示一些特定的范围。我的意思是:

public enum SampleEnum {
    A(1),
    B(2),
    C(3),
    D(4),
    //E([5-100]);

    private SampleEnum(int value){
        this.value = value;
    }

    private final int value;
}

这里,例如,是否可以用单个值(这里是“E”)表示 5 到 100 之间的范围,或者有更好的方法吗?

最佳答案

数字 5 和 100 是两个不同的值,因此存储一个值在这里不起作用。

但是在枚举中定义两个值很容易,一个低值和一个高值。对于范围只有一个的那些,将高和低设置为相同的值。

enum SampleEnum {
    A(1),
    B(2),
    C(3),
    D(4),
    E(5, 100);

    private SampleEnum(int value){
        this.low = value;
        this.high = value;
    }
    private SampleEnum(int low, int high) {
        this.low = low;
        this.high = high;
    }

    private final int low;
    private final int high;
}

关于java - 在 Java 枚举中使用范围的种类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54697188/

相关文章:

java - spring boot 1.2.5 @Configuration @Autowired 注释为空?

c# - 如何将通用枚举转换为 int?

ios - 使开关功能正常工作

c++ - 是否有与基于范围的 for 循环兼容的 c.ended(iter) 方法?

mysql - 基于一系列值返回结果,即 WHERE ColA = (ColB + n OR ColB - n)

java - 如何使用 JPA/EclipseLink 与联结表建立多对多关系

java - Hibernate 级联删除 ConstraintViolationException

java列表创建方法区别

objective-c - 将 NSStrings 转换为枚举的最佳方法

创建一个包含 BST 给定范围内数字的单向链表