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)); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |