【问题标题】:how to convert string into runnable code in scala?如何在scala中将字符串转换为可运行的代码?
【发布时间】:2019-07-01 21:34:10
【问题描述】:

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

例如。案例类 + " " + $class_name " (" + $col_list + ")"

预期:定义类 abc

【问题讨论】:

  • 动态代码生成在 Scala 中并不常见,尤其是在像 spark 这样的分布式环境中,可能很难正确生成。您最初尝试解决的问题是什么?
  • 我想知道是否可以创建一个 repl 的实例并将字符串传递给它。
  • 可能重复:stackoverflow.com/questions/39142979/… 看起来有一个 IMain 解释器。

标签: scala apache-spark


【解决方案1】:

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

你可以这样做:

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

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

这样你就创建了一个解析字符串的 scala 类。如果类生成错误,它不会编译,所以你需要确定你在生成什么。

【讨论】:

    猜你喜欢
    • 2019-08-06
    • 1970-01-01
    • 2014-01-14
    • 2021-02-06
    • 2016-03-26
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    相关资源
    最近更新 更多