EnumUtil通過枚舉類型和相應的值返回枚舉And轉換枚舉到JSONArray

public interface BaseEnum <E extends Enum<?>,T> {
    E getValueByCode(String code);
    T getCode();
    String getMessage();
}
/**
 * 性別
 * @Param:
 * @Return:
 * @update: yitianRen20200226
*/
public enum Sex  implements BaseEnum<Sex,String> {

    MALE("1", "男"),
    FEMALE("2", "女");

    private String code;
    private String message;

    Sex(String code, String message){
        this.code = code;
        this.message = message;
    }

    public static Sex getEnumByCode(String code) {
        Sex[] values = Sex.values();
        for (Sex Sex : values) {
            if(Sex.getCode().equals(code)) {
                return Sex;
            }
        }
        return null;
    }

    public static Sex getEnumByMsg(String msg) {
        Sex[] values = Sex.values();
        for (Sex Sex : values) {
            if(Sex.getMessage().equals(msg)) {
                return Sex;
            }
        }
        return null;
    }

    @Override
    public Sex getValueByCode(String code) {
        return Sex.getEnumByCode(code);
    }

    @Override
    public String getCode() {
        return this.code;
    }

    @Override
    public String getMessage() {
        return this.message;
    }

    @Override
    public String toString() {
        return this.code;
    }
}
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.**.**.*.BaseEnum;

/**
 * @Date 2020/1/3 9:31
 * @Version 1.0
 */
public class EnumUtil {
    public static <E extends Enum<?> & BaseEnum> E codeOf(Class<?> enumClass, String code) {
        //獲取枚舉常量
        E[] enumConstants = (E[]) enumClass.getEnumConstants();
        //遍歷枚舉常量  通過枚舉值返回枚舉類型
        for (E e : enumConstants) {
            if (e.getCode().equals(code))
                return e;
        }
        return null;
    }
    public static <E extends Enum<?> & BaseEnum> JSONArray enumToJson(Class<E> enumClass){
        JSONArray jsonArray = new JSONArray();
        E[] enumConstants = enumClass.getEnumConstants();
        for (E e : enumConstants) {
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("name",e.name());
            jsonObject.put("code",e.getCode());
            jsonObject.put("message",e.getMessage());
            jsonArray.add(jsonObject);
        }
        return jsonArray;
    }

    public static Enum getEnumByCode(Class<?> enumType, String code) {
         enumType.getEnumConstants();
        return null;
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章