通常获取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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |