如何在scala中将字符串转换为可运行代码?

如何在scala中将字符串转换为可运行代码?,scala,apache-spark,Scala,Apache Spark,我想动态创建case类,为此我编写了程序,但不能将case类定义为程序返回字符串类型,而不是定义类 例如:案例类+/$class\u名称+$col\u列表+ 预期:定义类abc警告:您需要100%确保生成的代码已编译 您可以这样做: val yourPath = ...\\somePath.scala new PrintWriter(yourPath) { write(s"case class $class_name($col_list)") close() } 通过这种方式,您可

我想动态创建case类,为此我编写了程序,但不能将case类定义为程序返回字符串类型,而不是定义类

例如:案例类+/$class\u名称+$col\u列表+


预期:定义类abc

警告:您需要100%确保生成的代码已编译

您可以这样做:

val yourPath = ...\\somePath.scala 
new PrintWriter(yourPath) {

  write(s"case class $class_name($col_list)")
  close()
}

通过这种方式,您可以创建一个scala类来解析字符串。如果类生成错误,它将无法编译,因此您需要确定生成的是什么。

动态代码生成在Scala中并不常见,尤其是在spark这样的分布式环境中,可能很难正确生成。您最初试图解决的问题是什么?我想知道是否可以创建repl的实例并向其中传递字符串。可能的dupulicate:看起来有一个IMain解释器。