From dee56ed8d52f1d8ee1f89b369561c49e9b3b7c2d Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期五, 23 一月 2026 17:56:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New' into dev_New
---
src/main/java/com/ruoyi/basic/utils/EnumUtils.java | 45 +++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 45 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ruoyi/basic/utils/EnumUtils.java b/src/main/java/com/ruoyi/basic/utils/EnumUtils.java
new file mode 100644
index 0000000..5103ac5
--- /dev/null
+++ b/src/main/java/com/ruoyi/basic/utils/EnumUtils.java
@@ -0,0 +1,45 @@
+package com.ruoyi.basic.utils;
+
+import com.ruoyi.basic.dto.SelectOptionDTO;
+import com.ruoyi.common.enums.BaseEnum;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class EnumUtils {
+ public static List<SelectOptionDTO<?>> getOptions(String className) {
+ try {
+ Class<?> clazz = Class.forName(className);
+ return getOptionsByClass(clazz);
+ } catch (ClassNotFoundException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ private static List<SelectOptionDTO<?>> getOptionsByClass(Class<?> clazz) {
+ if (!clazz.isEnum()) {
+ throw new RuntimeException("涓嶆槸鏋氫妇锛�" + clazz.getName());
+ }
+ if (!BaseEnum.class.isAssignableFrom(clazz)) {
+ throw new RuntimeException("鏈疄鐜� BaseEnum锛�" + clazz.getName());
+ }
+ return (List<SelectOptionDTO<?>>) getOptionsInternal((Class) clazz);
+ }
+
+ private static <T> List<SelectOptionDTO<T>> getOptionsInternal(
+ Class<? extends BaseEnum<T>> clazz) {
+
+ Enum<?>[] enums = (Enum<?>[]) clazz.getEnumConstants();
+ List<SelectOptionDTO<T>> list = new ArrayList<>();
+
+ for (Enum<?> e : enums) {
+ BaseEnum<T> option = (BaseEnum<T>) e;
+ list.add(new SelectOptionDTO<>(
+ option.getCode(),
+ option.getValue()
+ ));
+ }
+ return list;
+ }
+}
--
Gitblit v1.9.3