Java 如何使用Scala中的Enum.valueOf?
我需要从给定枚举类实例的字符串中获取Java枚举值。我尝试了下面这样的代码,但出现了“未绑定通配符类型”编译错误。似乎,我需要对存在类型做一些事情,比如一些{}之类的,但我不知道如何做对Java 如何使用Scala中的Enum.valueOf?,java,scala,enums,existential-type,Java,Scala,Enums,Existential Type,我需要从给定枚举类实例的字符串中获取Java枚举值。我尝试了下面这样的代码,但出现了“未绑定通配符类型”编译错误。似乎,我需要对存在类型做一些事情,比如一些{}之类的,但我不知道如何做对 val paramClass = method.getParameterTypes()(0) val value = paramClass match { case _ if classOf[Enum[_]].isAssignableFrom(paramClass) => Enum.valueOf[_
val paramClass = method.getParameterTypes()(0)
val value = paramClass match {
case _ if classOf[Enum[_]].isAssignableFrom(paramClass) => Enum.valueOf[_ <: Enum[_]](paramClass.asInstanceOf[Class[_ <: Enum[_]]], "MYENUM")
val paramClass=method.getParameterTypes()(0)
val值=参数类匹配{
case uif classOf[Enum[]].isAssignableFrom(paramClass)=>Enum.valueOf[p>Hmm,很难解决。我有一个可行的解决方案,但我发现它很难看。我对任何更优雅的方法都感兴趣
def enumValueOf[T <: Enum[T]](cls: Class[_], stringValue: String): Enum[_] =
Enum.valueOf(cls.asInstanceOf[Class[T]], stringValue).asInstanceOf[Enum[_]]
val value = paramClass match {
case _ if classOf[Enum[_]].isAssignableFrom(paramClass) => enumValueOf(paramClass, "MYENUM")
case _ => // other cases
}
def enumValueOf[T enumValueOf(paramClass,“MYENUM”)
案例=>//其他案例
}
我认为我们需要这种复杂性的原因
我们需要编译器相信我们拥有的类[\u]
实际上是一个类[T]