gpt4 book ai didi

scala - 有什么方法可以从 Scala (2.10) 类型标记或符号获取 Java 类吗?

转载 作者:行者123 更新时间:2023-12-02 07:38:44 24 4
gpt4 key购买 nike

看起来这让我很接近,但是(a)不完全是(见下文),并且(b)使用名称的字符串表示感觉就像黑客......

scala> import scala.reflect.runtime.universe._import scala.reflect.runtime.universe._

scala> val t = typeOf[Int]
t: reflect.runtime.universe.Type = Int

scala> t.typeSymbol.asClass.fullName
res0: String = scala.Int

scala> object X { class Y }
defined module X

scala> val y = typeOf[X.Y]
y: reflect.runtime.universe.Type = X.Y

scala> Class.forName(y.typeSymbol.asClass.fullName)
java.lang.ClassNotFoundException: X.Y [...]

我是否缺少一些更直接的方法来访问此信息?或者,如果我在某些时候也需要类信息,只是为了保留一组并行的 Java 类信息,这是否是最好的? (呃!)

最佳答案

接收 java.lang.Class 或通过反射实例化对象必须使用镜像来完成,而不是使用类型和符号来完成,这些是 Scala 的编译时信息:

scala> val m = runtimeMirror(getClass.getClassLoader)
m: reflect.runtime.universe.Mirror = JavaMirror with ...

scala> m.runtimeClass(typeOf[X.Y].typeSymbol.asClass)
res25: Class[_] = class X$Y

关于scala - 有什么方法可以从 Scala (2.10) 类型标记或符号获取 Java 类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12901823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com