加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 如何同时获取ClassTag表单TypeTag或两者同时?

发布时间:2020-12-16 09:23:09 所属栏目:安全 来源:网络整理
导读:我有一些这样的代码: class ReflectiveJsonFormat[T:TypeTag] extends JsonFormat[T] { def write(x: T) : JsValue = { val t = typeOf[T] val getters = t.declarations.filter { s = s.isMethod s.asMethod.isGetter } val mirror = runtimeMirror(this.g
我有一些这样的代码:

class ReflectiveJsonFormat[T:TypeTag] extends JsonFormat[T] {
  def write(x: T) : JsValue = {
   val t = typeOf[T]
   val getters = t.declarations.filter { s => s.isMethod && s.asMethod.isGetter }
   val mirror = runtimeMirror(this.getClass.getClassLoader)
   val instanceMiror = mirror.reflect(x)
  }
}

最后一行失败:

No ClassTag available for T

我认为TypeTag比ClassTag更多的信息?我可以从TypeTag获得ClassTag吗?如果没有,有没有一些语法说T有两个上下文边界 – TypeTag和ClassTag?或者,你会如何解决这个代码?

解决方法

如果这是你以后,scala确实支持多个上下文边界:

class ReflectiveJsonFormat[T:TypeTag:ClassTag]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读