我正在尝试构建一个接收元素的通用CRUD接口,从证据中搜索隐式CRUD实现,并根据参数化类型序列化必要的对象。
代码如下:
private def createElement[T <: AnyRef](element: String)
(implicit ev: ResourceManager[T], m: Manifest[T]): Response = Try {
val e = Serializer.fromJson(element, m.runtimeClass)
ev.create(e, persistence)
ResponseBuilder.newBuilder().status(202).build()
}.getOrElse(ResponseBuilder.newBuilder().status(412).build())
如你所见。我收到一个String,一个实现create方法和Manifest的ResourceManager的证据。在尝试序列化时,我确保T类型是AnyRef,但这不是问题。
问题是m.runtimeClass
返回Class [_]而不是Class [T]。
我的问题是,如果清单确实做了我想做的事情,我怎么能在不明确传递类名或其他什么的情况下做到这一点?
谢谢!