我有一些这样的枚举:

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]);


我会将范围检查作为练习留给读者。

09-16 06:45