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

通常获取Scala类型的清单

发布时间:2020-12-16 09:05:41 所属栏目:安全 来源:网络整理
导读:有没有办法一般性地获得 Scala类型的清单?例如,如果我只有一个Class引用可以使用,有没有办法可以获得相应的清单? 解决方法 Scala的内置隐式[T]将为您提供类型为T的隐式值(如果存在).所以隐式[Manifest [T]]将返回类型T的清单. 如果你有一个Class引用,你可
有没有办法一般性地获得 Scala类型的清单?例如,如果我只有一个Class引用可以使用,有没有办法可以获得相应的清单?

解决方法

Scala的内置隐式[T]将为您提供类型为T的隐式值(如果存在).所以隐式[Manifest [T]]将返回类型T的清单.

如果你有一个Class引用,你可以像这样获得Class的Manifest:

def manifestFor[T: Manifest](c: Class[T]) = implicitly[Manifest[T]]

class Foo
val x =  new Foo
manifestFor(x.getClass)
//scala.reflect.Manifest[_ <: Foo] = _ <: Foo

Manifest的类型是_<:Foo而不仅仅是Foo,但它们是相同的.

implicitly[Manifest[Foo]] == manifestFor(x.getClass)
//Boolean = true

(编辑:李大同)

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

    推荐文章
      热点阅读