这似乎是一个简单的问题,但搜索起来非常具有挑战性,所以我要问一个新问题。如果已经有人问过,我深表歉意。
由于此处描述的编译器错误 Scala 2.11.5 compiler crash with type aliases and manifests (也在此处 https://issues.scala-lang.org/browse/SI-9155 ),我需要使用 scala TypeTag
和 friend 来发现方法的类型参数。但是,我随后需要在使用 java.lang.Class
和 java.lang.reflect.Type
的 Java 库中使用该类型信息。
如何将 scala.reflect.runtime.universe
Type
转换为 java.lang.reflect.Type
或 java.lang.Class
?
具体来说,我将如何填写这个方法的主体:
def typeFor[T](implicit tag: TypeTag[T]): java.lang.reflect.Type = ...
或者,如果那不可能:
def typeFor[T](implicit tag: TypeTag[T]): java.lang.Class[T] = ...
请注意,由于上面发布的错误,我无法使用 scala.reflect.Manifest
。
最佳答案
简短的回答是否定的,但您可以尝试做类似于 this SO question 的事情.然而there is an open ticket... .
关于java - 获取 Scala 类型的 Java 反射表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28569619/