在scala中生成案例类

时间:2015-01-10 11:30:02

标签: scala scala-macros

如何根据100个java类中保存的信息在scala中生成case类?基本上,我需要这个来编写java库的包装器。

甚至可能吗?我有一种感觉,没有。在那种情况下,最好的选择是什么?

2 个答案:

答案 0 :(得分:2)

完全可行。一些想法:

  1. 每次编译项目时似乎都不需要生成代码。您可以生成一次,然后签入源代码控制或发布为库。
  2. 根据您是否有权访问Java库的源代码,您需要使用.java parser.class parser。反射可能适用于您也可能不适用(主要约束是您需要在当前JVM的类路径中使用该类并将其加载到内存中以通过反射API访问它)。
  3. 有关使用示例生成Scala代码的不同方法,请参阅this post

答案 1 :(得分:0)

当然可以。您可以在编译之前生成它们。您将需要内省Java类(可能使用反射API),然后生成相应的Scala源代码。您可以生成一次并复制到存储库或创建生成器并在构建工具中使用它,例如,在SBT。

您可以手动(通过连接字符串)或像TreeHugger这样的库

生成代码