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

在不知道特定枚举类型的情况下通过键获取枚举的值

,可以通过反射来实现。反射是一种在运行时动态获取类型信息并操作对象的能力。

在Java语言中,可以使用反射来获取枚举类型的值。下面是一个示例代码:

代码语言:txt
复制
import java.lang.reflect.Field;

public class EnumReflectionExample {
    public static void main(String[] args) {
        String enumTypeName = "EnumType"; // 枚举类型的名称
        String enumValueName = "ENUM_VALUE_1"; // 枚举值的名称

        try {
            Class<?> enumType = Class.forName(enumTypeName); // 获取枚举类型的Class对象
            Field enumValueField = enumType.getField(enumValueName); // 获取枚举值的Field对象
            Object enumValue = enumValueField.get(null); // 获取枚举值

            System.out.println(enumValue); // 输出枚举值
        } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException e) {
            e.printStackTrace();
        }
    }
}

上述代码中,通过Class.forName(enumTypeName)获取了枚举类型的Class对象,然后通过getField(enumValueName)获取了枚举值的Field对象,最后通过get(null)获取了枚举值。

需要注意的是,上述代码中的enumTypeNameenumValueName需要根据实际情况进行替换。

这种通过反射获取枚举值的方法可以适用于不知道特定枚举类型的情况下,但需要注意的是,反射操作相对较慢,因此在性能要求较高的场景下,建议尽量避免使用反射。

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

相关·内容

iOS·枚举变量 未赋值赋值为空 情况下,默认为0(即第一个枚举类型

枚举类型变量赋值特性: 一个枚举类型如果没有赋初值,则默认为0。 一个枚举类型如果赋值为nil,同样为0。...比如说,有这样一个枚举类型: typedef NS_ENUM(NSInteger, PopupType) { PopupTypeNormal = 0, PopupTypeBookInfo...= 1 }; 调用时候,代码欲从VC字典数组 self.resource 中获取某字典 self.resource[indexPath.row] 并取出 type 键值对,但实际使用时,该字典并不存在键值对...,即 [self.resource[indexPath.row] objectForKey:@"type"] 为空,这时候如果把它传递给枚举类型,所获得到枚举类型仍为0。...打个断点,可以发现type1和type2均为PopupTypeNormal,即第一个枚举类型

7.6K10

CA1712:不要将类型名用作枚举前缀

规则 ID CA1712 类别 命名 修复是中断修复还是非中断修复 重大 原因 枚举包含名称以枚举类型名称开头成员。...规则说明 枚举成员名称不使用类型名称作为前缀,因为类型信息将由开发工具提供。 命名约定为面向公共语言运行时库提供通用外观。...枚举前缀触发器 你可以仅为此规则、为所有规则或为此类别(命名)中所有规则配置此选项。 有关详细信息,请参阅代码质量规则配置选项。 枚举前缀触发器 你可以配置触发规则所需枚举数量。...例如,若要指定在一个或多个枚举枚举类型名称开头时触发规则,请将以下键值对添加到项目中 editorconfig 文件: dotnet_code_quality.CA1712.enum_values_prefix_trigger...dotnet_code_quality.CA1712.enum_values_prefix_trigger = Heuristic 使用默认启发式(即至少 75% 枚举枚举类型名称开头)触发规则。

37000

【100个 Unity小知识点】 | C#中通过 数字int 获取 枚举Enum 中数值

Unity 小知识点学习 C# 中通过数字int获取枚举Enum方法 枚举类型 ,数据直接存储栈中,而不是使用引用和真实数据隔离方式来存储。...默认情况下枚举第一个变量被赋值为0,其他变量按定义顺序来递增(0,1,2,3…) enum枚举类型变量名字不能相同,但是可以相同 如果enum中部分成员显式定义了,而部分没有;那么没有定义成员还是会按照上一个成员来递增赋值...,//默认int为1 Lost,//默认int为2 Tracking//默认int为3 } 我们可以直接通过 枚举....int类型 State状态。...Unity端拿到这个之后,通过判断这个int类型数值来判断当前应用程序状态。。 所以这里就可以使用int方法来获取枚举来完成状态更新。

2.4K10

MySQL枚举类型enum字段插入不在指定范围时, 是否是”插入了enum第一个”?…「建议收藏」

刚刚在看>一书”ENUM类型”一节, 以下面的代码举例, 得出结论: “还可以看出对于不在ENUM指定范围内时, 并没有返回警告, 而是插入了enum(‘M’, ‘F’)第一个...这个相当于是一个警告信息,我本地测试 5.7 中,直接插入会报错,但是使用 ignore 后,数据能被强制插入,但是是空。...INSERT ignore INTO user (sex) VALUES (5); 服务器使用 MySQL 5.5 测试 无论是否添加 ignore 数据都能被插入,但是是空。... MySQL 枚举类型“八宗罪” 这篇文章第七条,文中提到了,如果不合法会被处理成空字符串,在后一段中又提到了因为类型缘故,会根据枚举索引去取值。...for column ‘genter’ at row 1“; 所以,建议开发中尽量不用枚举类型,免得报无谓错误; 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/

1.7K20

【TS 演化史 -- 13】字符串枚举 和 弱类型(Weak Type)探测

,但不能通过解析一个 MediaTypes["JSON"]; // "application/json" MediaTypes["application/json"]; // undefined...: enum DefaultPorts { HTTP = 80, HTTPS = 443 } 在这种情况下,编译器还会生成从反向映射 var DefaultPorts; (function...DefaultPorts[(DefaultPorts["HTTPS"] = 443)] = "HTTPS"; })(DefaultPorts || (DefaultPorts = {})); 这种反向映射允许通过键值解析通过解析...有时,可能有必要发出一个const枚举映射代码,例如,当某些 JS 代码需要访问它时,在这种情况下,可以tsconfig.json文件中打开prepareConstEnums编译器选项: {...createFormatter函数可能会忽略它不知道config任何属性(例如semicolons),并退回到每个属性默认

1.6K10

听GPT 讲Rust Cargo源代码(6)

列表是一个包含多个,每个由逗号分隔。ConfigList继承了ConfigKey,并添加了特定于列表元数据,例如最小长度、最大长度等。...FieldVisitor: 这是一个trait,定义了访问和解析配置字段方法。它用于解析配置文件中特定字段,并返回对应。 ValueKey: 这是一个枚举,定义了配置文件中可能类型。...它有两个枚举:Some(T)表示配置文件中存在某个,None表示配置文件中不存在该。 KeyKind: 这是一个枚举类型,表示配置文件中类型。...它有多个枚举,如Bool、String等,每个枚举表示不同类型。 bool: 这是一个基本布尔类型枚举,表示配置文件中布尔。...实现中,首先根据操作系统类型和版本来选择合适实现,然后通过调用相应操作系统接口,获取CPU状态和负载信息。

8010

细说枚举

我将从大家都了解部分开始讲解,然后再讲解大家所不知道或者了解很少部分。 零、基础知识 枚举是由开发人员声明一种 类型 ,它在编译时就声明了一种 具名常量值 。...第一段代码中 case 我们几乎完全不知道代表了什么是什么意思,但是第二段代码我们使用了枚举通过 case 马上就可以知道所要表达意思。...但是部分情况下我们需要自定义枚举对应整数常量,这个时候我们就需要用到自定义方式。...GetName GetName 方法返回是一个字符串,这个字符串就是需要获取指定枚举字符串形式。...一般我们会使用按位或操作符链接枚举,使用 HasFlags 方法或者按位与操作符来判断特定位是否存在。

1.9K10

Java程序设计(基础)- 数据类型

枚举类型Day中分别定义了从周一到周日,这里要注意,一般是大写字母,多个之间以逗号分隔。...同时我们应该知道枚举类型可以像类(class)类型一样,定义为一个单独文件,当然也可以定义在其他类内部,更重要枚举常量类型安全性和便捷性都很有保证,如果出现类型问题编译器也会提示我们改进,但务必记住枚举表示类型其取值是必须有限...检查序列单个字符、比较字符串、搜索字符串、提取子字符串、创建字符串副本、该副本中、所有的字符都被转换为大写或小写形式。 Date :Date表示特定瞬间,精确到毫秒。...Map: K – 此映射所维护类型 V – 映射类型映射到对象。一个映射不能包含重复;每个最多只能映射到一个。...如果此映射以前包含一个该映射关系,则用指定替换旧(当且仅当,返回 true 时,才能说映射 m 包含 k 映射关系)。

86420

听GPT 讲Rust源代码--compiler(35)

这些Trait包括: Key:作为查询类型必须实现Trait。它定义了查询行为,包括如何计算哈希、与其他比较等。...AsLocalKey:用于将其他类型转换为与LocalCrate结构体相关联。它提供了一个方法来获取特定LocalCrate结构体相关联,以便在查询系统中使用。...该枚举用于确定函数调用返回存储在哪个位置,例如将返回存储一个变量中,或者直接将其存储函数调用返回位置中(如寄存器)。...通过使用缓存,BasicBlocks 结构体需要时可以更快地访问和获取这些信息。...Bool: 表示布尔类型标量值。 Char: 表示字符类型标量值。 这些结构体和枚举类型作用是MIR解释器中表示和处理常量和内存分配。

9810

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券