【发布时间】:2014-04-22 09:22:59
【问题描述】:
我目前正在编写一个通用函数来执行 Dispatch 异步请求,但我无法在 Dispatch 处理程序中访问通用类型:
private def execQuery[MessageType](query : Req, errorMsg : String)
{
Http(query OK as.String).either
.onSuccess
{
case Left(error) => println(errorMsg)
case Right(json) => println( new MessageType(json) ) // error here
}
}
我在新 MessageType 上有一个错误:“新 MessageType(json)”中的“无法解析符号 MessageType”。 你能帮帮我吗?
提前谢谢你
维克多
编辑:我在这里找到了另一种有趣的方式http://www.brentsowers.com/2011/11/writing-generic-functions-that-take.html。您必须使用清单功能:
class DynamicTestClass() {
def output() {
println("Hello from a dynamically sent class")
}
}
def testFunc[T : Manifest]() : T = {
manifest[T].erasure.newInstance().asInstanceOf[T]
}
val dynamicTestClassInstance = testFunc[DynamicTestClass]()
dynamicTestClassInstance.output()
它似乎工作!
【问题讨论】:
标签: scala generics asynchronous dispatch