1
我想在scala中实现一个函数,它可以解析源代码(类对象)的字符串并在运行时将其编译为对象。Scala解析字符串类并在运行时编译
例如,该功能是我迄今为止所尝试的功能。我的目标是运行它在运行时环境编译,我可以使用它的构造函数或它的函数。此代码有运行时错误,但我不明白如何解决反射类错误。谢谢!
object test {
def main(args: Array[String]): Unit = {
val m = universe.runtimeMirror(getClass.getClassLoader)
val tb = m.mkToolBox()
val clazz = tb.compile(tb.parse("class insideclass {\n val model_field = 5\n def insideclass(model: Int) = {\n val model_field = model \n } \n\n def test() : Int = {\n model_field\n }\n\n}\nscala.reflect.classTag[insideclass].runtimeClass"))().asInstanceOf[Class[_]]
val classinside = universe.typeOf[Class[_]].typeSymbol.asClass
val ctor = universe.typeOf[Class[_]].declaration(universe.nme.CONSTRUCTOR).asMethod
val cm=m.reflectClass(classinside)
val ctorm=cm.reflectConstructor(ctor)
println(ctorm(10).test())
}
}