如何处理作为函数参数传递的未定义类对象?

时间:2018-04-09 12:31:09

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

作为函数参数输入的变量是案例类的实例。 在这种情况下,你能做一些像JsonMethods.extract [变量]吗?

// 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"

1 个答案:

答案 0 :(得分:0)

我不知道json4s所以我的东西可能不合适。但是传递给extract的东西实际上是一个类型参数而不是值参数。我想你想做的是

JsonMethods.parse(json).extract[Test]

使用传入提取的类型,告诉json4s应该放入json的结构。在您的情况下,案例类Test