我有一些这样的枚举:
public enum Classification {
UNKNOWN("Unknown"),
DELETION("Deletion"),
DUPLICATION("Duplication"), ....
但是其中一些成员大约有20个成员,因此目前在代码中,我使用巨大的if / else块来处理它们,如下所示:
int classification= rs.getInt("classification");
if (classification == Classification.UNKNOWN.ordinal()) {
variant.setClassification(Classification.UNKNOWN);
} else if (classification == Classification.DELETION.ordinal()) {
variant.setClassification(Classification.DELETION);
(rs来自JDBC tho)。
Java在这些大的if / else块中是否有更好的方法来执行我的工作?某种循环遍历吗?
最佳答案
如果db值是Enum
的序数,则:
int classification= rs.getInt("classification");
variant.setClassification(Classification.values()[classification]);
我会将范围检查作为练习留给读者。