【问题标题】:How do I handle undefined class objects passed as function arguments?如何处理作为函数参数传递的未定义类对象?
【发布时间】:2018-04-09 12:31:09
【问题描述】:

作为函数参数输入的变量是案例类的一个实例。 在这种情况下,你可以做类似 JsonMethods.extract [variable] 的事情吗?

// I do not know if the "Any" keyword is appropriate. Or, Class [_]?
def func(a: Any) {
   val json = """{"c_1":"hi","c_2":"bye"}"""
   JsonMethods.parse(json).extract[a]           // ERROR
}

如果提供上述函数(func),用户将能够:

case class Test(var c_1: String, var c_2: String) {}

val t = Test("", "")
func(t)
println(t.c_1) // "hi"
println(t.c_2) // "bye"

【问题讨论】:

    标签: scala jackson generic-programming case-class json4s


    【解决方案1】:

    我不知道 json4s,所以我的东西可能不是重点。但重要的是传递给extract 的东西实际上是类型参数而不是值参数。我想你想做的是

    JsonMethods.parse(json).extract[Test]
    

    通过在提取中传递的类型,你告诉 json4s 你的 json 应该放在什么结构中。在您的情况下,案例类Test

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-23
      • 1970-01-01
      • 2022-06-11
      • 1970-01-01
      • 2020-10-13
      • 1970-01-01
      • 1970-01-01
      • 2022-07-10
      相关资源
      最近更新 更多