kyl*_*tts 5 scala scala-macros slick
我正在使用一个 csv 库,它接受一个案例类并将其转换为行供我阅读。
语法非常接近File(path).asCsvReader[caseClass]. 链接到这里的库
然而问题是我想从数据库中的表生成案例类。我可以接收数据库中的表以及列的类型(Int、Long、Double、String 等),但我不知道如何使用该数据动态创建案例类,因为我在编译时不知道这些信息。
正因为如此,我也无法使用宏,因为我不知道宏编译时的表数据。
那么,一旦收到表数据,然后将该案例类传递给 csv 库,我将如何动态创建该案例类?
那么基本上您需要有关案例类的运行时信息?我想你应该使用ClassTag:
import scala.reflect._
def asCsvReader[T: ClassTag]: T = {
classTag[T].runtimeClass.getDeclaredConstructor(...).newInstance(...)
...
}
Run Code Online (Sandbox Code Playgroud)
这将允许您在运行时实例化您的案例类。
由于您可以确定 CSV 列的类型,因此您可以提供适当的类型getDeclaredConstructor和newInstance方法。
| 归档时间: |
|
| 查看次数: |
13456 次 |
| 最近记录: |