Java 枚举作为 BigInteger 值

标签 java enums comparison enumeration biginteger

我的应用程序中有枚举类,我正在使用此枚举来比较 BigIntegers 的值,如下所示:

if (user.getObjId.equals(RoleEnum.ADMIN.getValue())) {
    //something happens
}

问题是,我是否可以修改此枚举类以在不调用 getValue() 方法的情况下使用它,如以下代码示例所示?

if (user.getObjId.equals(RoleEnum.ADMIN)) {
    //something happens
}

这是我的枚举类:

public enum RoleEnum {
    ADMIN(1), USER(2);
    private final BigInteger value;

    private RoleEnum(int value) {
        this.value = BigInteger.valueOf(value);
    }

    public BigInteger getValue() {
        return value;
    }
}

最佳答案

BigInteger 背后的想法是,您可以处理非常大的数字,您只需在 IDE 中以数字方式输入...

你应该这样做:

ADMIN("1"), USER("2");
private RoleEnum(String value) {
    this.value = BigInteger.valueOf(value);

关于Java 枚举作为 BigInteger 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36767955/

相关文章:

java - Spring Security 登录身份验证中表单 post 方法不会返回到 Controller

java - 迭代枚举的枚举

java - PDFBox 和 JPEG 2000 示例的图像类型未知

java - 使用相同代码写入写字板与写入记事本时的结果不同

PostgreSQL、枚举、JPA、EclipseLink

大数据对比之django数据库

php - 3个不同的等于

C# - 两个日期之间的总天数和四舍五入

Java Pong 游戏碰撞检测问题

javascript - 如何在angularjs中声明枚举?