reflection - Scala:如何知道一个类是否是一个枚举; isInstanceOf[Enumeration] 不起作用

标签 reflection scala enumeration

我在 scala 中编写一个序列化程序,将对象(或模型)保存到数据库(用于应用程序引擎),我需要将某些字段视为特殊情况。例如,如果该字段的类型为 Array[Byte],我将其保存为一个 blob。我也需要将枚举视为特殊情况,但我不知道如何知道一个类型是否为枚举。

例如:

object UserType extends Enumeration {
    val Anonym, Registered, Admin, Super = Value
}

var value = UserType.Admin  
value.isInstanceOf[Enumeration] // this returns false

value.isInstanceOf[Enumeration.Value] 我也做不到,因为 Value 是私有(private)的...无论如何我认为这也会返回 false。

有什么想法吗?
谢谢!

最佳答案

value.isInstanceOf[Enumeration$Value]

关于reflection - Scala:如何知道一个类是否是一个枚举; isInstanceOf[Enumeration] 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1691865/

相关文章:

c# - 我读到过遍历 HashSet 是不好的做法。我应该先调用 .ToList() 吗?

c# - Java枚举支持方法?但不是在 C# 中?

python - 在python中枚举返回什么样的对象?

pointers - 如何从接口(interface){}获取结构成员的指针

java - 在登录期间选择命令有什么更好的方法吗?

java - Kotlin noarg 插件 : Constructor only accessible by java reflection

scala - Scala 中的 Foreach 与 Map

Scala:解决 "illegal cyclic reference"

java - Hadoop-PCap-Lib 字段类型

java.lang.reflect.Field getType() 结果无法与使用 equals() 的类型进行比较