精华内容
下载资源
问答
  • java反射获取枚举所有的值

    万次阅读 2019-05-09 15:16:40
    由于项目的发展,枚举也是越来越多,为了方便前端直接取值,而不是每一次增加枚举给说一次,就写了一个根据枚举包名+类名获取所有的枚举值的接口;具体方法如下: ... * 根据枚举的字符串获取枚举的值...

    由于项目的发展,枚举也是越来越多,为了方便前端直接取值,而不是每一次增加枚举给说一次,就写了一个根据枚举包名+类名获取所有的枚举值的接口;具体方法如下:

    一、我返回的一个List<Map<String,Object>>的对象,传入的是枚举的包名+类名

       如果确定了枚举的包名,其实也可以直接传入枚举的类名就可以了

    /**
         * 根据枚举的字符串获取枚举的值
         *
         * @param className 包名+类名
         * @return
         * @throws Exception
         */
        public static List<Map<String, Object>> getAllEnumByClassName(String className) throws Exception {
            // 1.得到枚举类对象
            Class<Enum> clz = (Class<Enum>) Class.forName(className);
            // 2.得到所有枚举常量
            Object[] objects = clz.getEnumConstants();
            Method getCode = clz.getMethod("getCode");
            Method getMessage = clz.getMethod("getMessage");
            List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
            Map<String, Object> map = null;
            for (Object obj : objects) {
                map = new HashMap<String, Object>();
                map.put("code", getCode.invoke(obj));
                map.put("message", getMessage.invoke(obj));
                list.add(map);
            }
            return list;
        }
    二、和第一个方法基本一样,就是中途获取的常量为枚举
    /**
     * 根据枚举的字符串获取枚举的值
     *
     * @param className 包名+类名
     * @return
     * @throws Exception
     */
    public static List<Map<String, Object>> getAllEnum(String className) throws Exception {
        // 得到枚举类对象
        Class<Enum> clazz = (Class<Enum>) Class.forName(className);
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
        //获取所有枚举实例
        Enum[] enumConstants = clazz.getEnumConstants();
        //根据方法名获取方法
        Method getCode = clazz.getMethod("getCode");
        Method getMessage = clazz.getMethod("getMessage");
        Map<String, Object> map = null;
        for (Enum enum1 : enumConstants) {
            map = new HashMap<String, Object>();
            //执行枚举方法获得枚举实例对应的值
            map.put("code", getCode.invoke(enum1));
            map.put("message", getMessage.invoke(enum1));
            list.add(map);
        }
        return list;
    }                                                                                                         
    

    比如:我有一个枚举是这样子的:

    在页面上通过接口,传入当前包名+类名获取得劲结果如下:

    以上就是通过反射获取枚举值的方法,当然,还有别的方法,因为反射也不止这样一种

    展开全文
  • /// 获取枚举类型的所有项,返回集合 /// /// 枚举类型 /// 返回System.ValueTuple集合类型,item1为描述名称,item2为枚举name,item3为枚举int值 public static List<(string, string, int)> GetEnumList(Type ...
    
     public enum UserType
        {
            /// <summary>
            /// 后台管理
            /// </summary>
            [Description("后台管理")]
            Manager = 1,
            /// <summary>
            /// 普通用户
            /// </summary>
            [Description("普通用户")]
            Viewer = 2,
        }
    
    
    /// <summary>
    /// 获取枚举类型的所有项,返回集合
    /// </summary>
    /// <param name="enumType">枚举类型</param>
    /// <returns>返回System.ValueTuple集合类型,item1为描述名称,item2为枚举name,item3为枚举int值</returns>
    public static List<(string, string, int)> GetEnumList(Type enumType)
    {
    	List<(string, string, int)> list = new List<(string, string, int)>();
    	//var arr2 = typeof(Operation).GetFields();
    	var arr2 = enumType.GetFields();
    	for (int i = 1; i < arr2.Length; i++)
    	{
    		var item = arr2[i];
    		System.ComponentModel.DescriptionAttribute[] dd = item.GetCustomAttributes(typeof(System.ComponentModel.DescriptionAttribute), true) as System.ComponentModel.DescriptionAttribute[];
    		string des = dd[0].Description;
    		var name = item.Name;
    		//int num = (int)Enum.Parse(typeof(Operation), name);
    		int num = (int)Enum.Parse(enumType, name);
    		list.Add((des, name, num));
    	}
    	return list;
    }

     

    展开全文
  • 【C#】C#获取枚举所有名称和值

    万次阅读 2019-03-30 17:39:18
    先定义一个枚举类型 public enum Word { A = 0, B = 1, C = 2, D = 3 } 获取全部名称 string[] nameList= System.Enum.GetNames(typeof(Word)); ...

    先定义一个枚举类型

        public enum Word
        {
            A = 0,
            B = 1,
            C = 2,
            D = 3
        }
    

    获取全部名称

            string[] nameList=  System.Enum.GetNames(typeof(Word));
            foreach (var name in nameList)
            {
                print(name);//获取名称
            }
    

    在这里插入图片描述
    获取全部值

            System.Array values = System.Enum.GetValues(typeof(Word));
            foreach (var value in values)
            {
                print(value + "--" + (int)value);//获取名称和值
            }
    

    在这里插入图片描述

    通过反射获取枚举值

    获取全部字段

            FieldInfo[] fields = typeof(Word).GetFields();
            foreach (var field in fields)
            {
                print(field);//获取字段
            }
    

    在这里插入图片描述
    打印中第一个为System.Int32 value__ ,枚举的实际值类型为Int32

    获取全部值

        	for (int i = 1; i < fields.Length; i++)
            {
                print(((int)fields[i].GetValue(null)).ToString());
            }
    

    在这里插入图片描述

    展开全文
  • 获取枚举里的所有枚举

    千次阅读 2019-10-12 11:56:53
    using UnityEngine; using System;.../// 获取枚举里的所有枚举 /// </summary> public class 枚举测试 : MonoBehaviour { private void 测试() { var arr = Enum.GetValues(typeof(测试枚举)...

    using UnityEngine;
    using System;

    /// <summary>
    /// 获取枚举里的所有枚举
    /// </summary>
    public class 枚举测试 : MonoBehaviour {

        private void 测试()
        {
            var arr = Enum.GetValues(typeof(测试枚举));
            for (int i = 0; i < arr.Length; ++i)
            {
                //这样就可以获取枚举里的所有枚举了
                测试枚举 _temp = (测试枚举)arr.GetValue(i);
              
            }
        }
    }

    public enum 测试枚举
    {

    }

    展开全文
  • java中常用的枚举方法有values和valueof valueOf方法会把一个String类型的名称...values是获取所有枚举项 package HtppClient1.EnumUtil; import java.lang.reflect.Field; import java.lang.reflect.Invoc...
  • 获取枚举所有注释

    千次阅读 2014-09-09 10:37:26
    当定义一个枚举时,或添加了属性注释。
  • java获取枚举类的所有属性

    千次阅读 2020-11-19 10:48:11
    :通过取项目某个包路径下的所有枚举类来获取该类的所有属性 直接上java代码: package com.xxx.common.ennum; import cn.hutool.core.util.ClassUtil; import java.lang.reflect.Method; import java.util....
  • 一、声明枚举值、枚举值描述 using System.ComponentModel; public enum status { /// <summary> /// 取消 /// </summary> [Description("取消")] cancel, /// <summary> /// 提交 ///...
  • 根据枚举的key获取枚举

    千次阅读 2018-09-18 14:34:52
     通过枚举的key获取枚举 二、代码  /// &lt;summary&gt; /// 根据枚举的key获取枚举 /// &lt;/summary&gt; /// &lt;param name="enumType"&gt;枚举的类型,示例:typeof...
  • 获取枚举所有值的骚操作static

    千次阅读 2020-08-01 11:04:34
    public enum ProductStatus { disagree("disagree","不同意"), measurement_agreement("measurement_agreement","测算同意"), approval("approval","审批中"), to_be_activation("to_be_activation","待激活")...
  • java反射获取枚举

    万次阅读 2018-05-06 19:35:39
    所以如果要获取枚举常量中的值,首先需要使用class的getEnumConstants()方法获取枚举类中所有的枚举常量,然后使用类中对应的方法,得到常量中包含字段的值。代码如下:1.枚举类代码示例package ...
  • java 通过反射获取枚举类,及枚举类的值,枚举类枚举实例名。本项目为普通java项目
  • C#实现获取枚举的描述

    千次阅读 2017-05-05 17:20:32
    一个通用获取枚举的描述的方法 /// /// 获取枚举的描述 /// /// 枚举 /// 返回枚举的描述 public static string GetDescription(Enum en) { Type type = en.GetType(); //获取类型
  • 枚举类中获取枚举值的几种方法

    万次阅读 2019-03-17 21:02:36
    在开发的过程中我们经常会定义枚举类,枚举类中获取枚举值的方式也有很多种,下面我们就探究一下大家常用的几种方式: 枚举类 public enum TestEnum { ONE(1,"one"), ZERO(0,"zero"), TWO(2,...
  • Java根据枚举名使用反射获取枚举

    千次阅读 2018-12-12 18:36:26
    由于前端需要根据枚举名获取实时获取枚举值,所以通过反射去得到枚举数据. (一) 首先我们新建一个枚举类接口,用于之后反射使用 package com.littlematch.enums.biz; /** * 枚举值接口定义类 */ public interface ...
  • 在开发中需要用到枚举类中变量的所有值。如下例季节枚举类中需要获取数组["春", "夏", "秋", "冬"]。 public enum Season { SPRING("春天"), SUMMER("夏天"), AUTUMN("秋天"), WINTER("冬天"); String season...
  • 所以如果要获取枚举常量中的值,首先需要使用class的getEnumConstants()方法获取枚举类中所有的枚举常量,然后使用类中对应的方法,得到常量中包含字段的值。代码如下:1.枚举类代码示例package ...
  • C# Enum 获取枚举属性

    2019-02-15 14:02:00
    Enum使用 获取枚举属性 注意:扩展方法必须定义为静态类,静态方法中。 public enum EnumPatientSource { [Description("住院")] INHOSPITAL = -1, [Description("门诊")] OUTPATIENT = 0, } ...
  • 利用JAVA反射获取所有枚举

    千次阅读 2019-05-17 17:57:06
    JAVA反射获取所有枚举定义枚举接口枚举类获取所有枚举输出 定义枚举接口 public interface ... * 获取枚举值 * @returnint */ Integer getValue(); /** * 获取枚举名称 * @return */ String getName...
  • Qt中可以获取枚举变量的枚举值、枚举字符串、枚举数量等相关信息。 效果图及示例代码 头文件 #ifndef WIDGET_H #define WIDGET_H #include <QWidget> namespace Ui { class Widget; } class Widget : ...
  • c#获取枚举类的值

    千次阅读 2019-08-30 15:32:23
    c#获取枚举类的值,在inkCanvas中的使用 foreach (InkCanvasEditingMode item in Enum.GetValues(typeof(InkCanvasEditingMode))) { this.combobox.Items.Add(item); } private void combobox_SelectionChanged...
  • c#获取所有枚举

    2018-03-01 10:53:00
    获取所有枚举 1、将所有枚举单独成一个项目 2、通Assembly加载程序集 3、通过Assembly对象的GetTypes获取所有枚举类型 4、通过Enum.GetValues可以得到枚举所有值 Assembly asmb = Assembly.LoadFrom...
  • public enum SchoolAssignmentType { 课次作业(1, “课次作业”), 班级作业(2, “班级作业”); Integer code; String desc; public Integer getCode() { return this.code; } public String getDesc() { ......
  • java通过反射获取枚举对象

    万次阅读 2017-10-20 13:51:25
    里面使用到的枚举对象也随之增加,以往是每个枚举都有一个获取的方法,后来网上查了一下.可以通过java的反射机制来获取代码如下 Class<?> onwClass = Class.forName(...
  • java反射之获取枚举对象

    千次阅读 2018-05-16 11:25:08
    java反射之获取枚举对象项目中导入大量枚举对象,用来定义常量。随着带来一个问题,就是每个枚举类都需要通过key来获取对应枚举的需求。 1 public enum ExamType { 2 CRAFT(1, "草稿"), 3 PASSING(2, &...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 181,013
精华内容 72,405
关键字:

获取枚举所有