【发布时间】:2011-02-08 23:45:32
【问题描述】:
我正在使用 Jersey 在 Scala 中实现 JAX-RS 服务。我想为 Json 提供者提供一个通用特征,并且我需要知道我的提供者是否支持请求的类。由于类型擦除,在 java 中不可能在运行时知道类型参数的类。但是可以在scala中做吗?
此代码不起作用:
trait JsonProvider[A] extends MessageBodyReader[A] with MessageBodyWriter[A] {
final def isReadable(t : Class[_],
genericType: Type,
annotations: Array[Annotation],
mediaType: MediaType): Boolean = {
t.isAssignableFrom(classOf[A]) && mediaType == MediaType.APPLICATION_JSON_TYPE
}
}
有什么建议吗?在 Java 中,最好的方法是让受保护的抽象方法返回 A 的类,在 Scala 中也是如此?
【问题讨论】:
标签: java scala traits type-parameter