在运行时从参数化类型获取类类型/名称

时间:2016-07-07 19:19:48

标签: json scala generics manifest

我正在尝试构建一个接收元素的通用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]。

我的问题是,如果清单确实做了我想做的事情,我怎么能在不明确传递类名或其他什么的情况下做到这一点?

谢谢!

0 个答案:

没有答案
相关问题