我是靠谱客的博主 怕孤独巨人,最近开发中收集的这篇文章主要介绍java枚举工具类_枚举工具类 EnumUtil,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

枚举工具类

package cc.laowantong.utils;

import java.lang.reflect.Field;

import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;

import java.util.ArrayList;

import java.util.List;

/**

* @author bobo (bo.wang@laowantong.cc)

* @date 2018年01月22日

* @desc enum 工具类

*/

public class EnumUtil {

/**

* 从变长的枚举参数列表中, 获取指定字段的集合 (eg: enum list -> status list )

* @param fieldName 需要获取的字段名

* @param enums 枚举类 可变参数

* @return field list

* @throws NoSuchFieldException 枚举类中没有 fieldName时, 抛出此异常

* @throws NoSuchMethodException 枚举类中没有 fieldName的 get方法时, 抛出此异常

* @throws InvocationTargetException 当被调用的方法的内部抛出了异常而没有被捕获时,将由此异常接收。

* @throws IllegalAccessException 枚举类的构造方法访问权限时 private时, 抛出此异常

*/

public static List getListByEnum(String fieldName, Enum... enums) throws NoSuchFieldException, NoSuchMethodException, InvocationTargetException, IllegalAccessException {

List list = new ArrayList();

if (enums == null) {

return list;

}

for (Enum e : enums) {

Class extends Enum> clazz = e.getClass();

Field field = clazz.getDeclaredField(fieldName);

String methodName = getFieldGetMethodName(field);

if (methodName != null) {

Method method = clazz.getMethod(methodName);

Object returnValue = method.invoke(e);

list.add(returnValue);

}

}

return list;

}

public static String getFieldGetMethodName(Field field) {

if (field == null) {

return null;

}

String name = field.getName();

return "get" + name.substring(0, 1).toUpperCase() + name.substring(1, name.length());

}

public static String getFieldSetMethodName(Field field) {

if (field == null) {

return null;

}

String name = field.getName();

return "set" + name.substring(0, 1).toUpperCase() + name.substring(1, name.length());

}

}

最后

以上就是怕孤独巨人为你收集整理的java枚举工具类_枚举工具类 EnumUtil的全部内容,希望文章能够帮你解决java枚举工具类_枚举工具类 EnumUtil所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(101)

评论列表共有 0 条评论

立即
投稿
返回
顶部