在Java中使用ENUMS验证值组合的最佳方法是什么?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在Java中使用ENUMS验证值组合的最佳方法是什么?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2091字,纯文字阅读大概需要3分钟。
内容图文
![在Java中使用ENUMS验证值组合的最佳方法是什么?](/upload/InfoBanner/zyjiaocheng/695/d2ecae54892042cf8cdda940ca73a18c.jpg)
我通过定义如下的ENUM来验证从数据库中检索到的记录的状态
public enum RecordStatusEnum {
CREATED("CREATED"),
INSERTED("INSERTED"),
FAILED("FAILED");
private String recordStatusValue;
RecordStatusEnum (String status) {
recordStatusValue= status;
}
public boolean isSuccess() {
return (this.equals(CREATED) || this.equals(INSERTED));
}
}
方法isSuccess()用于检查检索到的记录的状态(员工的列状态)
if (!(employee.getStatus().isSuccess())) {
// return error
}
根据新要求,引入了一组条件,例如A,B和C.对于他们,在Employee表“ condition”中有一列.
因此,我需要检索状态以及条件,并查看它是否属于具有两者组合的集合.
例如:isSuccess()应该检查以下内容:
CREATED and A
CREATED and B
INSERTED and C
必须做到这一点,以使我很容易在列表中轻松添加一个新的组合,例如“ INSERTED and B”.
解决上述问题的最佳方法是什么?
注意:在实际的业务场景中,状态和检查要多得多(例如isFailed()canBeModified()等)以及许多不同的组合
即使不使用ENUMS,也可以建议使用任何方法.我提到了ENUMS,因为我不想与现有的实现有很大的出入
解决方法:
有很多可能性,但是您可以这样做(我删除了String状态,因为它等于枚举的名称,所以不添加任何值):
public enum RecordStatusEnum {
CREATED(Condition.A, Condition.B),
INSERTED(Condition.C),
FAILED();
private Set<Condition> successConditions;
RecordStatusEnum(Condition... successConditions) {
this.successConditions = EnumSet.copyOf(Arrays.asList(successConditions));
}
public boolean isSuccess(Condition c) {
return successConditions.contains(c);
}
}
编辑:
具有两组条件的示例:
public enum RecordStatusEnum {
CREATED(EnumSet.of(Condition.A, Condition.B),
EnumSet.of(Condition.C)),
INSERTED(EnumSet.of(Condition.C),
EnumSet.of(Condition.B),
FAILED(EnumSet.noneOf(Condition.class),
EnumSet.noneOf(Condition.class));
private Set<Condition> successConditions;
private Set<Condition> modificationConditions;
RecordStatusEnum(Set<Condition> successConditions,
Set<Condition> modificationConditions) {
this.successConditions = successConditions;
this.modificationConditions = modificationConditions;
}
public boolean isSuccess(Condition c) {
return successConditions.contains(c);
}
public boolean canBeModified(Condition c) {
return modificationConditions.contains(c);
}
}
内容总结
以上是互联网集市为您收集整理的在Java中使用ENUMS验证值组合的最佳方法是什么?全部内容,希望文章能够帮你解决在Java中使用ENUMS验证值组合的最佳方法是什么?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。