以动态类为参数的Scala函数



好了,这是我要做的实时示例。我使用Scala Sttp作为我的Http客户端。我有一堆请求,所以我想让它更抽象。我想在抽象函数下概括所有get请求,看起来像:

def getRequest(
uri: String,
queryString: String,
responseClass: **ANYCLASS**, --> I am unsure how to do this
trackingId: String,
component: String = "http-v2-client-get-request",
numberOfRetries: Int = 0
): Either[HttpErrorInfo, **ANYCLASS**] = {
val request = basicRequest
.get(uri"$uri")
.response(asJson[responseClass])
}
...

所以我的问题是如何替换responseClass签名,这样我就可以提供任何case class,这样它就能被正确映射。

对不起,如果我的问题有点糟糕,我是Scala的新手,还在学习如何动态地做事情

Try

def getRequest[T: Decoder](
uri: String,
queryString: String,
trackingId: String,
component: String = "http-v2-client-get-request",
numberOfRetries: Int = 0
): Either[HttpErrorInfo, T] = {
val request = basicRequest
.get(uri"$uri")
.response(asJson[T])
}
...

请注意上下文绑定的: Decoder

相关内容

  • 没有找到相关文章

最新更新