加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何从属性获取枚举值

发布时间:2020-12-15 08:27:12 所属栏目:Java 来源:网络整理
导读:我有一个值为VALID和INVALID的枚举,它具有与之关联的布尔属性.我想根据我提供的布尔值获取枚举值. 如果确实如此,我应该获得VALID,如果是,我应该获得INVALID.我想基于成员变量的值,在下面的getter方法中这样做 public boolean getCardValidityStatus() { retu
我有一个值为VALID和INVALID的枚举,它具有与之关联的布尔属性.我想根据我提供的布尔值获取枚举值.

如果确实如此,我应该获得VALID,如果是,我应该获得INVALID.我想基于成员变量的值,在下面的getter方法中这样做

public boolean getCardValidityStatus() {
    return CardValidationStatus status = CardValidationStatus(this.mCardValidityStatus));
}

我的代码:

private enum CardValidationStatus {
    VALID(true),INVALID(false);

    private boolean isValid;
    CardValidationStatus(boolean isValid) {
        this.isValid = isValid;
    }
    public boolean getValidityStatus() {
        return this.isValid;
    }
}

解决方法

您可以使用枚举本身中的静态查找方法实现此目的:

private enum CardValidationStatus {
    VALID(true),INVALID(false);

    //...

    public static CardValidationStatus forBoolean(boolean status) {

        //this is simplistic given that it's a boolean-based lookup
        //but it can get complex,such as using a loop...
        return status ? VALID : INVALID; 
    }
}

并且可以使用以下方法检索适当的状态:

public CardValidationStatus getCardValidityStatus() {
    return CardValidationStatus.forBoolean(this.mCardValidityStatus));
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读