From ab849f796bdc17236a95ea5fe5c166fb8f24a75c Mon Sep 17 00:00:00 2001 From: sws <15810472099@163.com> Date: 星期六, 26 十一月 2022 16:12:02 +0800 Subject: [PATCH] 1 --- src/main/java/com/lf/server/helper/EnumHelper.java | 83 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 83 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/lf/server/helper/EnumHelper.java b/src/main/java/com/lf/server/helper/EnumHelper.java new file mode 100644 index 0000000..b6127b8 --- /dev/null +++ b/src/main/java/com/lf/server/helper/EnumHelper.java @@ -0,0 +1,83 @@ +package com.lf.server.helper; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import java.lang.reflect.Method; + +/** + * 鏋氫妇甯姪绫� + * @author WWW + */ +public class EnumHelper { + private static final String GETTER_PREFIX = "get"; + + private static Log log = LogFactory.getLog(EnumHelper.class); + + /** + * 鏍规嵁鍚嶇О鑾峰彇鏋氫妇 + * + * @param clazz 鏋氫妇绫诲瀷 + * @param name 鏋氫妇鐨勫悕绉帮紝濡傦細SqlParamType涓殑AND + * @return 杩斿洖鏋氫妇鍊� + */ + public static <T extends Enum<T>> T nameOf(Class<T> clazz, String name) { + return Enum.valueOf(clazz, name); + } + + /** + * 鏍规嵁灞炴�у悕+鍊艰幏鍙栨灇涓� + * + * @param clazz 鏋氫妇绫诲瀷 + * @param propertyName 瀛楁,濡俷ame,id + * @param value 鍊�,濡傚紶涓� + * @return 杩斿洖鏋氫妇鍊� + */ + public static <T extends Enum<T>> T getByString(Class<T> clazz, String propertyName, String value) { + String getterMethodName = GETTER_PREFIX + StringHelper.firstCharToUpperCase(propertyName); + T result = null; + try { + T[] arr = clazz.getEnumConstants(); + Method targetMethod = clazz.getDeclaredMethod(getterMethodName); + String typeCodeVal = null; + for (T entity : arr) { + typeCodeVal = targetMethod.invoke(entity).toString(); + if (typeCodeVal.contentEquals(value)) { + result = entity; + break; + } + } + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + } + return result; + } + + /** + * 鏍规嵁鏁存暟鑾峰彇鏋氫妇 + * + * @param clazz 鏋氫妇绫诲瀷 + * @param propertyName 瀛楁,濡� age + * @param value 鍊�,濡�18 + * @return 杩斿洖鏋氫妇鍊� + */ + public static <T extends Enum<T>> T getByInt(Class<T> clazz, String propertyName, int value) { + String getterMethodName = GETTER_PREFIX + StringHelper.firstCharToUpperCase(propertyName); + T result = null; + try { + T[] arr = clazz.getEnumConstants(); + Method targetMethod = clazz.getDeclaredMethod(getterMethodName); + int typeCodeVal; + for (T entity : arr) { + typeCodeVal = Integer.parseInt(targetMethod.invoke(entity).toString()); + if (typeCodeVal == value) { + result = entity; + break; + } + } + } catch (Exception ex) { + log.error(ex.getMessage(), ex); + } + return result; + } +} -- Gitblit v1.9.3