java - 如何在 Java 中将对象转换为 Enum 并获取当前值

标签 java enums

我当前有一个字段转换为对象。我需要检查该字段是否是枚举类型,如果是,我想获取当前设置值的名称。 任何想法将不胜感激。

If(field is an enum){
      get the value of the field
}

我现在在哪里

if (field.getClass().isEnum()){
    String enumValue =  //here i need to cast the field to enum and do something like field.name()
}

最佳答案

基于

I have a field currently casted to object

我假设您遇到类似 Object obj = SomeEnum.FOO; 和来自

的情况

i would like to get the name of the currently set value

我假设您想获得“FOO”字符串。

如果上述假设正确,那么您所写的内容

String enumValue = //here i need to cast the field to enum and do something like field.name()

应该适合你。因此,当您确定 field 包含枚举值时,您可以将其转换为 Enum 类型并调用其返回 String 的 name() 方法代表枚举值。

String enumValue = ((Enum)field).name();

如果您确定枚举不会覆盖其 toString() 方法,您也可以调用它,因为默认情况下它也会返回枚举的 name

String enumValue = field.toString(); //this solution looks nicer but first one is more reliable.

关于java - 如何在 Java 中将对象转换为 Enum 并获取当前值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58218034/

相关文章:

java - 我们如何将参数和数据提供者传递给 Testng 中的相同方法

c# - 使用 [Flags] 属性定义 C# 枚举的多种方法?

java - 单独的枚举文件不接受变量

java - vaadin 中的延迟加载表

java - 使用 Recycler View 从列表中选择元素

android - 如何使用 | 生成枚举值在他们中

swift - 枚举返回对象(NSError)

Java 枚举出错?

java - 如何使用实体管理器使用查询将值插入数据库,使用 java 类进行持久化?

java - 从效率角度来看,在添加到第一个索引时,创建 ArrayList 还是使用数组会更快吗?