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> getOptions(String className) { try { Class clazz = Class.forName(className); return getOptionsByClass(clazz); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } } @SuppressWarnings("unchecked") private static List> getOptionsByClass(Class clazz) { if (!clazz.isEnum()) { throw new RuntimeException("不是枚举:" + clazz.getName()); } if (!BaseEnum.class.isAssignableFrom(clazz)) { throw new RuntimeException("未实现 BaseEnum:" + clazz.getName()); } return (List>) getOptionsInternal((Class) clazz); } private static List> getOptionsInternal( Class> clazz) { Enum[] enums = (Enum[]) clazz.getEnumConstants(); List> list = new ArrayList<>(); for (Enum e : enums) { BaseEnum option = (BaseEnum) e; list.add(new SelectOptionDTO<>( option.getCode(), option.getValue() )); } return list; } }