有没有办法判断是否在Scala中实现了一个类?
我建立在JVM的序列化系统上,广泛应对反射。已经处理了Java类,但该方法不适用于Scala类(例如,在Scala List [Int]中转换为Java反射系统中的List [Object],但这些丢失的信息可以通过scala来恢复。反射)。它就像是说我是否应该执行特定于scala的类处理。
答案 0 :(得分:5)
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