是否有一种方法可以判断类是否在Scala中实现?
我正在为JVM构建一个序列化系统,它广泛地处理反射。Java类已经被处理过了,但是对于Scala类来说,这种方法是不够的(例如,在Scala中,ListInt在Java的反射系统中变成了ListObject,但是这种丢失的信息可以通过scala的反射恢复)。说我是否应该对类执行scala特定的处理就像一个开关。
发布于 2015-01-08 17:07:56
def isJavaClass( cls: Class[_] ): Boolean = {
import scala.reflect.runtime.{universe=>ru}
val sym = ru.runtimeMirror(cls.getClassLoader).classSymbol(cls)
sym.isJava
}
REPL测试:
scala> isJavaClass(classOf[List[Any]])
res0: Boolean = false
scala> isJavaClass(classOf[java.util.List[Any]])
res1: Boolean = true
https://stackoverflow.com/questions/27844601
复制相似问题