enum

本文介绍了如何使用Java枚举类进行枚举元素的序号、名称、映射、属性值等操作,包括枚举到序号、枚举到名称、枚举到映射、枚举属性到列表和映射等方法。



public class EnumUtil {

public static List<Integer> enumToOrdinal(Class<? extends Enum> clz){
 if(!clz.isEnum()){
 return null;
 }
 Enum[] enums=clz.getEnumConstants();
 List<Integer>  rels=new ArrayList<Integer>();
 for(Enum  en:enums){
 rels.add(en.ordinal());
 }
return rels;

}
/**
 * 将枚举中的值转换为相应的名称字符串列表
 * @param clz
 * @return
 */
public static List<String> enumToName(Class<? extends Enum> clz){
 if(!clz.isEnum()){
 return null;
 }
 Enum[] enums=clz.getEnumConstants();
 List<String>  rels=new ArrayList<String>();
 for(Enum  en:enums){
 rels.add(en.name());
 }
return rels;

}

public static Map<Integer,String> enumToMap(Class<? extends Enum> clz){
 if(!clz.isEnum()){
 return null;
 }
 Enum[] enums=clz.getEnumConstants();
 Map<Integer,String>  rels=new HashMap<Integer,String>();
 for(Enum  en:enums){
 rels.put(en.ordinal(),en.name());
 }
return rels;

}

public static List<String> enumPropToList(Class<?extends  Enum> clz ,String propName){
if(!clz.isEnum()){
return null;
}
List<String> rels;
try {
Enum[] enums=clz.getEnumConstants();
rels = new ArrayList<String>();
for(Enum  en :enums){
rels.add((String)PropertyUtils.getProperty(en, propName));
}
return  rels;
} catch (IllegalAccessException e) {

e.printStackTrace();
} catch (InvocationTargetException e) {

e.printStackTrace();
} catch (NoSuchMethodException e) {

e.printStackTrace();
}
       return null;

}



public static Map<Integer,String> enumPropToordinalMap(Class<?extends  Enum> clz ,String propName){
if(!clz.isEnum()){
return null;
}
Map<Integer,String> rels=new HashMap<Integer,String>();
try {
Enum[] enums=clz.getEnumConstants();
for(Enum  en :enums){
rels.put(en.ordinal(), (String)PropertyUtils.getProperty(en, propName));
}
return  rels;
} catch (IllegalAccessException e) {

e.printStackTrace();
} catch (InvocationTargetException e) {

e.printStackTrace();
} catch (NoSuchMethodException e) {

e.printStackTrace();
}
       return null;

}

public static Map<String,String> enumPropToMap(Class<?extends  Enum> clz ,String keyProp,String valueProp){
if(!clz.isEnum()){
return null;
}
Map<String,String> rels=new HashMap<String,String>();
try {
Enum[] enums=clz.getEnumConstants();
for(Enum  en :enums){
rels.put((String)PropertyUtils.getProperty(en, keyProp), (String)PropertyUtils.getProperty(en, valueProp));
}
return  rels;
} catch (IllegalAccessException e) {

e.printStackTrace();
} catch (InvocationTargetException e) {

e.printStackTrace();
} catch (NoSuchMethodException e) {

e.printStackTrace();
}
       return null;

}



public static Map<String,String> enumPropToNameMap(Class<?extends  Enum> clz ,String propName){
if(!clz.isEnum()){
return null;
}
Map<String,String> rels=new HashMap<String,String>();
try {
Enum[] enums=clz.getEnumConstants();
for(Enum  en :enums){
rels.put(en.name(), (String)PropertyUtils.getProperty(en, propName));
}
return  rels;
} catch (IllegalAccessException e) {

e.printStackTrace();
} catch (InvocationTargetException e) {

e.printStackTrace();
} catch (NoSuchMethodException e) {

e.printStackTrace();
}
       return null;

}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ygl6150373

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值