首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何获取valueOf泛型枚举?

valueOf泛型枚举是指在Java中,通过枚举类的valueOf方法获取指定枚举常量的实例。在泛型枚举中,valueOf方法可以接受一个Class类型的参数,用于指定要获取的枚举常量的类型。

要获取valueOf泛型枚举,可以按照以下步骤进行操作:

  1. 首先,定义一个泛型枚举类,例如:
代码语言:java
复制
public enum MyEnum<T> {
    VALUE1(String.class),
    VALUE2(Integer.class),
    VALUE3(Double.class);

    private Class<T> type;

    private MyEnum(Class<T> type) {
        this.type = type;
    }

    public Class<T> getType() {
        return type;
    }
}

上述代码定义了一个泛型枚举类MyEnum,其中包含了三个枚举常量VALUE1、VALUE2和VALUE3,每个常量都有一个对应的Class类型。

  1. 要获取valueOf泛型枚举,可以使用枚举类的valueOf方法,并传入对应的Class类型作为参数,例如:
代码语言:java
复制
Class<String> stringClass = MyEnum.VALUE1.getType();
String value1 = Enum.valueOf(stringClass, "VALUE1").toString();

上述代码中,通过MyEnum.VALUE1.getType()获取到VALUE1常量对应的Class类型,然后使用Enum.valueOf方法传入Class类型和常量名称"VALUE1"来获取该枚举常量的实例。

  1. 最后,可以根据需要对获取到的枚举常量进行操作,例如打印其值:
代码语言:java
复制
System.out.println(value1);

以上就是获取valueOf泛型枚举的方法。根据不同的应用场景和需求,可以灵活运用泛型枚举来实现各种功能。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Stack集合与枚举

    枚举枚举就是一个选择器,在调用某个需要传递参数的方法的时候能够明确的知道需要传递什么参数类型。...现在在JDK1.5之后就出现了一个枚举器,所以就有了一种类型叫枚举类型:Enum类型。 有了枚举器就知道需要传递什么参数类型的值了,枚举器最大的作用就是能够提醒用户需要传递的是什么类型的值。...在枚举类里直接写的属性值就是常量,values();方法能拿到这个枚举器里的所有常量。 代码示例: ? ?...是在JDK1.5之后才有的,要特定的类才可以做,没有声明的类是不能够使用来操作的。其实就是用来规定集合里面能够存储什么类型的,也就只有集合里才用得到。...在还没出现之前: ? ? 出现后: ? ? 的一些使用方式: ? 的使用: ? ?

    48920

    如何通过Java反射获取类型信息

    的使用场景 在讨论如何用反射获取类型之前,我们先来回顾下,在Java里面什么时候会使用,了解这个问题之后,我们才能继续思考如何用反射获取类型。...但类似第二种场景中通过对象的指针引用,我们是可以通过反射获取的类型信息的,但要注意局部变量是没法获取信息的。...在Java里面可以通过反射获取信息的场景有三个,分别是: (1)成员变量的 (2)方法参数的 (3)方法返回值的 注意,通过对象本身也是没法获取的。...不能通过发射获取类型信息的场景有二个,分别是: (1)类或接口声明的信息 (2)局部变量的信息 获取方法返回值的类型 如下面定义的一个测试类: public class MyClass...System.out.println("方法参数的类型:"+realType); } } } } 总结 本文主要介绍了如何使用反射来获取部分参数的类型信息

    9.3K21

    Java入门(16)-- 枚举类型与

    枚举类型的常用方法: 1)values() 该方法将枚举类型的成员变量实例以数组的形式返回,也可以通过该方法获取枚举类型的成员: package core; public class ShowEnum...:" + Constants2.values()[i]); } } } 运行结果: 2)valueOf()与compareTo() valueOf()可以将普通字符串转换为枚举类型,compareTo...16.2 实质上就是使程序员定义安全的类型。...限制可用类型 默认可用使用任何类型来实例化一个类对象,但Java中也对类实例的类型作了限制。...的类型参数只能是类类型,不可以是简单类型,如A这种定义就是错误的; 2. 的类型个数可用是多个; 3. 可以使用extends关键字限制的类型; 4.

    76830

    java typereference_Java | Jackson TypeReference获取类型信息「建议收藏」

    本文以Jackson为例介绍TypeReference实现涉及的反序列化,及TypeReference的实现原理。...对于获取类型信息的场景,TypeReference是一个可以参考的通用解决方案。 实例 Jackson ObjectMapper的readValue可以将Json字符串反序列化为Java对象。...抽象类TypeReference用于通过子类获取完整的类型信息。...实现原理 上例中new TypeReference>(){}子类的实例,TypeReference源码部分比较简单,主要逻辑是,通过getClass().getGenericSuperclass()获取父类中的参数化类型...Class的genericInfo: 总结Jackson ObjectMapper 提供了TypeReference支持对对象的反序列化; 对于获取类型信息的场景,TypeReference是一个可以参考的通用解决方案

    2.5K10

    Go实战 | 如何在结构体中使用

    上一篇文章给大家介绍了Go的三步曲。今天给大家分享一篇在结构体中使用的具体示例。 01 目标 假设我们要实现一个blog系统,我们有两个结构体:分类和文章。...:类型参数化、定义类型约束、类型实例化,我们一步步来定义我们的缓存结构体。...因为在中对类型参数进行约束是必要条件。所以要先定义类型约束。 因为要对分类Category类型和文章Post类型进行缓存,所以我们这里的缓存类型约束限制在了这两个类型上。...为了能够在cache结构体中存储和获取数据,我们再定义两个方法如下: func (c *cache[T]) Set(key string, value T) { c.data[key] = value...cache,所以函数New也必须是型函数,只有这样才能将类型T的具体值传递到结构体类型中。

    3.1K20

    【JavaSE专栏19】谈谈枚举的那些事

    主打方向:Vue、SpringBoot、微信小程序 Java 的枚举是用于提升代码质量而存在的,本文讲解 Java 中的枚举的语法和使用场景。...该类包含一个字段和相应的 getter 和 setter 方法。在 Main 类中的 main 方法中,我们分别创建了一个存放整数和字符串的对象,并演示了如何获取和设置其数据。...三、枚举的区别和使用场景 3.1 区别 枚举是两种在编程中常用的概念。 是一种允许在定义类、方法或接口时使用参数化类型的机制。...可以处理不同类型的数据,提高代码的重用性;而枚举只能表示预定义的取值,不具备处理不同类型数据的能力。...---- 四、总结 本文简单对 Java 的枚举进行了介绍,讲解了如何在实际业务中使用 Java 的枚举,并给出了 Java 样例代码。

    14120

    切面获取方法T的真实类型

    制造问题的是起头的这三个的方法。如 selectByPrimaryKey这个方法,由于这是一个方法,其返回值为T 。...而如果是的方法,那么returnType的结果就是“T”或者是”List”, 这也就意味着以下反序列化方法的执行失败。...这样,只要获取到了切点中正在执行方法的返回值(原始类型或者是某个类的实例),然后根据返回值来获取到Class,并最终获取到Type。这样就可以继续愉快地进行反序列化了。...returnType.getTypeName().equals("T") || returnType.getTypeName().equals("java.util.List")) { 对于T 或者是List的方法...而在回放时,可以通过获取记录的类型来进行反射,获取对应的类,并最终实现反序列化。

    2.3K30

    Java探究及擦除机制和如何跳过编译阶段

    为了向下兼容,所以Java虚拟机是不支持的,也就是说Java是一种伪机制。...的本质: 参数化类型 我们先来看的使用,然后再看的擦除机制 的使用 要想使用好,首先要对其基本的定义有所了解 通配符的介绍 无边界通配符 举例:<?...的擦除机制: 伪机制就是说:在编译期间把的信息全部擦除掉了, 只在编译阶段有效,编译之后JVM会采取去化的措施.所以最终都变成了最原始的类型(Object); 在运行期就不存在的信息...获取的类型,再转换罢了 如果没有指定类型,使用Object作为原始类型; 若有限定类型,使用X作为原始类型; 如果有多个限定类型(<T extends A & B &...我们再获取一下ClassName,输出一下看看 System.out.println(arrList.getClass().getName()+"\n"+intList.getClass().getName

    53330
    领券