0 0

java如何根据枚举的值获取该枚举类10

假如我现在有多个枚举类,

现在我需要这样一个通用的方法
根据某个枚举的值,返回该枚举类
使用时这么写
PType t=Utils.getEnum(PType.class,1);
CType t1=Utils.getEnum(CType.class,"1");

如何实现?

问题补充:两位仁兄会错了我的意思啦,我是想根据枚举的值获取枚举类,而不是根据索引
不过谢谢了,只需要遍历对比下就可以了
ps:以前居然都不知道有getEnumConstants()这个方法
2012年12月06日 18:02

3个答案 按时间排序 按投票排序

0 0

真的有必要么..... 想不懂用在什么场景

2012年12月06日 18:59
0 0

   
    /**
     * 根据索引获取
     * @param <T>
     * @param clazz
     * @param ordinal
     * @return
     */
    public static <T extends Enum<T>> T valueOf(Class<T> clazz, int ordinal) {
        return (T)clazz.getEnumConstants()[ordinal];
    }
    
    /**
     * 根据name获取
     * @param <T>
     * @param enumType
     * @param name
     * @return
     */
    public static <T extends Enum<T>> T valueOf(Class<T> enumType, String name) {
        return (T)Enum.valueOf(enumType, name);
    }
    
    

2012年12月06日 18:31
0 0

	public static void main(String[] args){
		PType t=getEnum(PType.class,1);  
		System.out.println(t);
	}
	public static <T> T getEnum(Class<T> clazz,int index){
		T[] c=clazz.getEnumConstants();
		return c[index];
	}
	public enum PType{A,B,C,D};

2012年12月06日 18:14

相关推荐

    java枚举结果类、根据状态值获取枚举值

    java枚举结果类、根据状态值获取枚举值 Controller: /** 模块类型枚举 */ model.addAttribute("mType", ModuleTypeEnum.ModuleTypeShow()); ftl: value="${mType.key}:${mType.value}” &lt;/#list&gt;

    java 通过反射获取枚举类,及枚举类的值,枚举类枚举实例名

    这些代码可能包括创建枚举类,然后通过反射获取枚举值、实例名以及演示如何使用`getDeclaredConstructor()`和`newInstance()`方法来访问私有构造函数(虽然这不是常规用法)。 通过深入理解这些概念,你可以更好地...

    java枚举类的属性、方法和构造方法应用实战

    setName() 方法用于设置枚举值的 name 属性,而 getName() 方法用于获取枚举值的 name 属性。 枚举类的构造方法 枚举类的构造方法是用于初始化枚举值的。在枚举类中,我们可以定义多个构造方法,每个构造方法都...

    简单总结java枚举类型

    Java枚举类型是Java语言中一种特殊的类,用于定义固定的常量集合,它提供了一种安全、类型化的方式来表示一组有限的值。枚举在Java中被引入为一个完整的类型,不同于C++中的枚举,这使得Java枚举更加强大且易于使用...

    java枚举类用法

    Java枚举类型(enum)是Java语言中一种特殊的类,用于定义一组固定的常量。它在许多场景下作为替代常量或单例模式的选择,提供了更安全、更易读的代码。下面我们将深入探讨Java枚举类的用法及其优势。 1. **枚举的...

    解析字符串转化为对象+code转desc+通过值实例枚举类+EnumUtil+PackageUtils工具类

    解析字符串转化为对象+code转desc+通过值实例枚举类+EnumUtil+PackageUtils工具类 ZipInputStream实现压缩文件的读取与数据转化的过程,利用反射实现根据枚举值获取枚举对象。

    Java中怎样由枚举常量的ordinal值获得枚举常量对象

    Java1.5提供了关键字enum,能够通过该关键字方便得定义自己须要的枚举类型,比方  enum Season {  SPRING, SUMMER, AUTUMN, WINTER  }  定义了一个季节枚举类型。  在本例中,对于Season.SPRING这个...

    56个民族枚举类

    通常,这样的枚举类可能会包含每个民族的枚举常量,可能还会包括一些方法来获取每个民族的英文名称或其他属性。例如: ```java public enum Nationality { HAN("汉族", "Han"), MAN("满族", "Manchu"), ZHANG(...

    通过枚举反向给实体类赋值

    然而,在实际开发中,我们经常需要将枚举值反向映射到实体类的属性上,以便在处理表单提交的数据时进行赋值。这可以有效地减少代码的冗余,提高可读性和维护性。本文将详细探讨如何创建一个工具类来实现这个功能。 ...

    Java手动方式创建枚举类示例

    Java枚举类型的应用场景: * 定义一组具有相同特征的常量 * 实现状态机和事件处理 * 实现配置和设置 Java枚举类型的注意事项: * 枚举类型的构造器应该是私有的 * 枚举类型的成员变量应该是final的 * 枚举类型的...

    Java枚举类型Enum的用法

    在枚举内部,可以通过`Enum&lt;E extends Enum&lt;E&gt;&gt;`的泛型方法`getDeclaringClass()`获取枚举常量所属的枚举类,以及`name()`和`ordinal()`方法获取常量的名称和在枚举中的位置。 总结来说,Java枚举类型提供了一种...

    Java中的“枚举类型

    - **增强可读性**:通过`name()`方法获取枚举元素的名称,使得代码更具可读性,便于维护。 **4. 设计哲学** 枚举不仅是Java语法的一部分,更是一种设计理念的体现。它鼓励开发者在设计程序时,明确区分不同类型的...

    列举java 枚举相关信息

    - `valueOf(String name)`:根据名称返回对应的枚举值。 - `values()`:返回包含该枚举类型所有值的数组。 #### 三、枚举类型的高级特性 除了基本的特性和方法之外,枚举类型还具有一些高级特性,使得它们在实际...

    常用的MIME TYPE类型枚举类Enum整理 静态方法直接检索使用

    全面覆盖:本枚举类内置了广泛使用的MIME类型,从常见的文本、图片、音频到视频格式,应有尽有。 智能检索:提供基于文件扩展名的MIME类型查询方法,只需一行代码即可获取,极大提升了开发效率。 易用性:采用枚举...

    Java源码查看枚举类型定义.rar

    在"查看枚举类型定义"的示例中,可能会展示如何通过反射API来获取枚举的详细信息,如枚举常量的名称、值以及它们的方法。这有助于在运行时分析和操作枚举类型。 总之,Java枚举类型是一种强大的工具,用于表示固定...

    java枚举类型优秀源代码

    在Java中,`enum`(枚举)是一种特殊的类,用于定义固定数量的常量值。它能够提高代码的可读性和可维护性,并且Java中的枚举提供了一些内置的方法来帮助我们更好地管理和操作这些常量。 #### 特性 - **语法格式**:...

    JAVA高级编程中Enum枚举

    4. **枚举常量集**:可以通过`values()`方法获取枚举类型的全部实例。 5. **枚举常量的自然顺序**:枚举常量按照声明的顺序进行排序,可以用`ordinal()`方法获取其在枚举中的位置。 在实际编程中,枚举可以用于实现...

    理解java枚举类型

    Java枚举类型是Java语言中的一种特殊的类,用于定义一组固定的常量集合。它在Java中扮演着重要的角色,提供了一种安全、类型化的常量表示方式,比传统的final static变量更具有优势。理解Java枚举类型对于编写高质量...

    JAVA枚举JAVA枚举.doc

    2. **自动实现 Comparable 和 Enum**:每个枚举类型都默认继承了 `java.lang.Enum` 类,因此枚举实例自动实现了 `Comparable` 接口,可以直接比较枚举值的顺序。 3. **枚举集合**:可以通过 `values()` 方法获取...

    java中enum枚举的详细用法

    可以通过`values()`方法获取枚举类型的所有实例,然后进行遍历: ```java for (WeekDay day : WeekDay.values()) { System.out.println(day + "====&gt;" + day.getDay()); } ``` 这将打印出所有枚举实例及其...

Global site tag (gtag.js) - Google Analytics