Встроенное в Scala implicitly[T]
даст вам неявное значение типа T (если оно существует).Поэтому implicitly[Manifest[T]]
вернет манифест для типа T.
Если у вас есть ссылка на класс, вы можете получить манифест для этого класса следующим образом:
def manifestFor[T: Manifest](c: Class[T]) = implicitly[Manifest[T]]
class Foo
val x = new Foo
manifestFor(x.getClass)
//scala.reflect.Manifest[_ <: Foo] = _ <: Foo
Тип манифеста: _ <: Foo
вместо Foo
, но они равны.
implicitly[Manifest[Foo]] == manifestFor(x.getClass)
//Boolean = true