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;
}
}