我正在使用 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 中也是如此吗?