Java枚舉類型在switch語句中的正確用法


很多人也許會嘗試寫下這樣的代碼:

ResultStructureEnum type = ResultStructureEnum.valueOf(userType);
switch (type) {
case ResultStructureEnum.STUDENT:
    ...
    break;
case ResultStructureEnum.TEACHER:
    ...
    break;
case ResultStructureEnum.PARENT:
    ...
    break;
...
}
# 這樣編譯不會通過,提示case后必須是一個常量

正確的寫法:

ResultStructureEnum type = ResultStructureEnum.valueOf(userType);
switch (type) {
case STUDENT:
    ...
    break;
case TEACHER:
    ...
    break;
case PARENT:
    ...
    break;
...
}
# 即在 case 后面可以直接寫枚舉類型,不用加枚舉類的類名。

如果需要根據類型的名稱返回枚舉實例,可以在枚舉類中加入方法

 /**
     * 根據統計編號獲取對應枚舉實例
     *
     * @param statNo
     * @return
     */
    public static ResultStructureEnum getStructureEnum(String statNo) {
        if (StringUtils.isBlank(statNo)) {
            return null;
        }
        for (ResultStructureEnum result : ResultStructureEnum.values()) {
            if (result.statNo.equals(statNo)) {
                return result;
            }
        }
        return null;
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM