Enum高級(jí)應(yīng)用

是否屬于

public class EnumUtil {
    /**
     * 判斷數(shù)值是否屬于枚舉類的值
     * @param key
     * @return
     */
    public static boolean isInclude(int key){
        boolean include = false;
        for (SwitchStatus e: SwitchStatus.values()){
            if(e.getKey()==key){
                include = true;
                break;
            }
        }
        return include;
    }
}

代碼測(cè)試

class Test{
    public static void main(String[] args) {
        CustType mtype = CustType.getMemberType(1);
        System.out.println(mtype);
        // 輸出結(jié)果: STUDENT
        System.out.println(mtype.getDesc());
        // 輸出結(jié)果: 學(xué)生
        String sncode = mtype.getPrefix();
        System.out.println(sncode);
        // 輸出結(jié)果: S
    }

package com.toltech.appstore.persistence.entity.Test;

import java.util.Arrays;
import java.util.List;

/**
 * Created by wanggs on 2017/8/22.
 */
public class EnumTest {
    public static void main(String[] args) {
         List<Integer> USER_TYPES = Arrays.asList(CustType.STUDENT.getValue(), CustType.TEACHER.getValue(), CustType.PARENTS.getValue());
        System.out.println(USER_TYPES.contains(6));
        
        // false

    }
}
enum CustType {
    /**
     * 學(xué)生
     */
    STUDENT(1, "S", "學(xué)生"),
    /**
     * 教師
     */
    TEACHER(2, "T", "教師"),
    /**
     * 家長(zhǎng)
     */
    PARENTS(3, "P", "家長(zhǎng)");
    private int value;
    private String prefix;
    private String desc;

    private CustType(int value, String prefix, String desc){
        this.value = value;
        this.prefix = prefix;
        this.desc = desc;
    }

    public int getValue(){
        return value;
    }

    public String getPrefix() {
        return prefix;
    }

    public String getDesc(){
        return desc;
    }

    public static CustType getMemberType(int value){
        for(CustType mtype : CustType.values()){
            if(value == mtype.getValue()){
                return mtype;
            }
        }
        return null;
    }
}

Demo

public class Test {
    public static void main(String[] args) {
        ResultBean<AuthzBean> result = null;
        AuthzBean authz = null;
        result = new ResultBean<AuthzBean>(ResultStatu.X1000, authz, "用戶名為空");
        System.out.println(result.isSuccess());
        // false
        System.out.println(ResultStatu.X1000.isSuccess());
        // false
        JSONObject object = (JSONObject) JSONObject.toJSON(result);
        System.out.println(object);
        // {"message":"用戶名為空","status":1000,"success":false}
    }
}

pojo

public class ResultBean<T> implements Serializable {
    private static final long serialVersionUID = 1L;
    private boolean success;
    private Integer status;
    private String message;
    private T data;
    
    public ResultBean(ResultStatu statu, T data){
        this.success = statu.isSuccess();
        this.status = statu.getStatus();
        this.message = statu.getMessage();
        this.data = data;
    }
    
    public ResultBean(ResultStatu statu, T data, String message){
        this.success = statu.isSuccess();
        this.status = statu.getStatus();
        if(StringUtils.isNotBlank(message)){
            this.message = message;
        } else {
            this.message = statu.getMessage();
        }
        this.data = data;
    }

    public boolean isSuccess() {
        return success;
    }

    public void setSuccess(boolean success) {
        this.success = success;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }
}

public class AuthzBean implements Serializable {
    private static final long serialVersionUID = 1L;
    private Integer id;
    private String account;
    private CustType mtype;
    private String token;
    private List<Integer> parentIds;
    private Integer childId;
    private Integer areaId;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public CustType getMtype() {
        return mtype;
    }

    public void setMtype(CustType mtype) {
        this.mtype = mtype;
    }

    public String getToken() {
        return token;
    }

    public void setToken(String token) {
        this.token = token;
    }

    public List<Integer> getParentIds() {
        return parentIds;
    }

    public void setParentIds(List<Integer> parentIds) {
        this.parentIds = parentIds;
    }

    public Integer getChildId() {
        return childId;
    }

    public void setChildId(Integer childId) {
        this.childId = childId;
    }

    public Integer getAreaId() {
        return areaId;
    }

    public void setAreaId(Integer areaId) {
        this.areaId = areaId;
    }
    
}

枚舉

public enum ResultStatu {
    /**
     * 業(yè)務(wù)處理成功
     */
    X0000(true, 0, "業(yè)務(wù)處理成功"),
    /**
     * 參數(shù)不能為空
     */
    X1000(false, 1000, "參數(shù)不能為空"),
    /**
     * 參數(shù)不正確
     */
    X1001(false, 1001, "參數(shù)不正確"),
    /**
     * 依賴系統(tǒng)接口出錯(cuò)
     */
    X1002(false, 1002, "依賴系統(tǒng)接口出錯(cuò)"),
    /**
     * 數(shù)據(jù)存在重復(fù)
     */
    X1003(false, 1003, "數(shù)據(jù)存在重復(fù)");
    private boolean success;
    private int status;
    private String message;
    
    private ResultStatu(boolean success, int status, String message){
        this.success = success;
        this.status = status;
        this.message = message;
    }

    public boolean isSuccess() {
        return success;
    }

    public int getStatus() {
        return status;
    }

    public String getMessage() {
        return message;
    }
}

enums 工具類

public class EnumUtil {

    public static <T extends CodeEnum> T getByCode(Integer code, Class<T> enumClass) {
        for (T each: enumClass.getEnumConstants()) {
            if (code.equals(each.getCode())) {
                return each;
            }
        }
        return null;
    }
}

public interface CodeEnum {
    Integer getCode();
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末撰豺,一起剝皮案震驚了整個(gè)濱河市市埋,隨后出現(xiàn)的幾起案子砰嘁,更是在濱河造成了極大的恐慌锈遥,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件渗鬼,死亡現(xiàn)場(chǎng)離奇詭異览露,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)譬胎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)差牛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人堰乔,你說(shuō)我怎么就攤上這事多糠。” “怎么了浩考?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)被盈。 經(jīng)常有香客問(wèn)我析孽,道長(zhǎng),這世上最難降的妖魔是什么只怎? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任袜瞬,我火速辦了婚禮,結(jié)果婚禮上身堡,老公的妹妹穿的比我還像新娘邓尤。我一直安慰自己,他們只是感情好贴谎,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布汞扎。 她就那樣靜靜地躺著,像睡著了一般擅这。 火紅的嫁衣襯著肌膚如雪澈魄。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,598評(píng)論 1 305
  • 那天仲翎,我揣著相機(jī)與錄音痹扇,去河邊找鬼铛漓。 笑死,一個(gè)胖子當(dāng)著我的面吹牛鲫构,可吹牛的內(nèi)容都是我干的浓恶。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼结笨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼包晰!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起禀梳,我...
    開(kāi)封第一講書(shū)人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤杜窄,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后算途,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體塞耕,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年嘴瓤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了扫外。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡廓脆,死狀恐怖筛谚,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情停忿,我是刑警寧澤驾讲,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站席赂,受9級(jí)特大地震影響吮铭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜颅停,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一谓晌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧癞揉,春花似錦纸肉、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至芥牌,卻和暖如春预吆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背胳泉。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工拐叉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留岩遗,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓凤瘦,卻偏偏與公主長(zhǎng)得像宿礁,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蔬芥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容