使用Treehugger scala生成代码



我在运行时使用TreeHugger生成代码。我找不到很多与之相关的文档。我的问题是,如果我使用treehugger生成类,我将来能访问这些类吗?

确切地说:我想读取来自CSV等文件的数据,并在运行时创建类。我将来可以使用那个类吗,比如在运行时生成的下一个类中。

我对scala真的很陌生,如果我解释不清楚,请原谅。

非常感谢!

我也做过类似的事情,所以我将分享我所学到的:

Treehugger最终在运行时生成代码(字符串),以便在随后的单独运行中使用(或者我想在运行时进行评估,但我从未实现过)。

因此,行动的过程取决于你所说的"运行时":

  1. 您的.csv文件在运行时是否仅可用?如果您可以在编译时访问这些文件(通常是这样),那么下面是您的两个选项的示例:实验性(scala宏)或传统(sbt-plugin)——这两种方法都很相似,但都有微妙的优缺点。

  2. 如果你只能在运行时访问文件,但仍然需要生成和"键入"类,并让编译器期望它们,那么在我看来,有人犯了一个严重的设计错误!但是,如果您发现自己陷入了这种情况,那么可以在运行时使用字节码工程库和一些类型检查器black magic(运行时类型提供程序)来定义和加载类。

最新更新