1. 程式人生 > >java switch case 語句接列舉類 實現判斷

java switch case 語句接列舉類 實現判斷

首先定義列舉類,如:

public enum DataTypeEnum {

    /**小時型別值**/
    HOUR("hour"),
    /**小時型別值**/
    DAY("day"),
    /**小時型別值**/
    WEEK("week"),
    /**小時型別值**/
    MONTH("month"),
    /**小時型別值**/
    YEAR("year"),
    /**小時型別值**/
    MINUTE("minute");
    
    private String value;
    
    private DataTypeEnum(String value){
        this.value = value;
    }
    
    public String getValue() {
        return value;
    }
    
    public static DataTypeEnum getType(String dataTypeCode){
        for(DataTypeEnum enums:DataTypeEnum.values()){
            if(enums.value.equals(dataTypeCode)){
                return enums;
            }
        }
        return null;
    }
}

列舉類中編寫一個得到列舉類的方法,如呼叫該方法時,引數dataTypeCod為week,呼叫該方法返回的是WEEK

接下來編寫switch case判斷  如:

 //根據傳過來的資料型別值,獲取相應的列舉
        DataTypeEnum dt = DataTypeEnum.getType(dataType);
        //根據列舉判斷,給tableName,和condition賦予不同場景下的不同值
        switch(dt) {
            case HOUR:
                somthingDone(要實現的業務邏輯)
                break;
            case DAY:
                somthingDone(要實現的業務邏輯)
                break;
            case WEEK:
               somthingDone(要實現的業務邏輯)
                break;
            case MONTH:
              somthingDone(要實現的業務邏輯)
                break;
            case YEAR:
               somthingDone(要實現的業務邏輯)
                break;
            default :
                somthingDone(要實現的業務邏輯)
        }

    在條件較多,不方便用if else語句判斷時,用switch case,美觀直接,同時,在cese的判斷中,直接使用列舉型別,對於需要判斷的型別,在列舉類中定義,方便管理。