【发布时间】:2016-08-12 20:34:37
【问题描述】:
我需要一些提示来编写一个可以读取 json 文件并在运行时创建案例类的 scala 程序。例如,如果我们有类似的 json 类 -
Employ{
name:{datatype:String, null:false}
age:{datatype:Int, null:true}
Address:{city: {datatype: String, null:true}, zip: {datatype: String, null:false}}
}
这应该创建像
这样的类case class Employ(name: String, age: Option[Int], address: Address}
case class Address(city: Option[String], zip:String}
可以在scala中做到吗?
【问题讨论】:
-
所以...您想在运行时动态定义类。你可以在 scala 中做到这一点,但只有在对 scala-reflection 进行了非常非常好的控制之后。我的建议 - 除非绝对必要,否则避免使用这种方法。
-
然后,即使您能够实现这一点,您仍需要对 scala-reflection 有很好的理解才能使用这些类及其实例。
-
这个项目试图解决你的部分问题 - github.com/julianpeeters/case-class-generator 。只有在这个项目中的所有代码对您来说都像英文一样简单之后,您才能认为自己能够解决您的问题。
标签: scala metaprogramming