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

时间:2019-07-01 12:44:25

标签: scala apache-spark

我想动态创建案例类,为此我编写了程序,但无法将案例类定义为程序返回String类型,而不是定义类。

例如案例类+“” + $ class_name“(” + $ col_list +“)”

预期:定义的类abc

1 个答案:

答案 0 :(得分:0)

警告:您需要100%确保所生成的代码可以编译。

您可以这样做:

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

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

这样,您将创建一个Scala类来解析字符串。如果该类生成错误,它将无法编译,因此您需要确定生成的内容。