【发布时间】:2017-09-30 04:41:21
【问题描述】:
考虑我想反序列化一个 JSON 字符串的情况:
def deserialize[T](json)
我可以在编写代码时提供我想显式应用函数的类
class Person(name: String)
deserialize[Person]("""{ "name": "Jennie" }""")
但是,如果我需要其他类,我必须在我的代码中提供它,然后重新编译。我希望我的程序更灵活,它可以采用一个配置文件,其中包含我要使用的类的名称。因此,当需要一个新类时,我只需要编写类定义,将其构建到另一个 jar 文件中,将其放入类路径中,然后重新启动程序。
val config = ConfigLoader.load("config.txt")
val className = config.getString("class-to-deserialize")
deserialize[<from className to type>](json)
那么,可以在 scala 中做到这一点吗?
【问题讨论】:
标签: scala reflection generic-programming scala-reflect