给出以下多态方法
def get[T](implicit m: ClassTag[T]) : Seq[T]
如何使用val中的参数调用。不幸的是,以下内容无法编译:
val clazz = Class[Int]
get[clazz]
[更新]我试图这样做:
val classes = List(String.getClass, Int.getClass)
classes.map { c => get(ClassTag(c)) }
答案 0 :(得分:1)
您不能提供类似于val的类型参数,Class[Int]
也不能提供值。目前还不清楚你真正想做什么。
您可以使用类型别名:
type C = Int
get[C]
您可以使用ClassTag
明确地查找classTag[A]
,这与向get[A]
提供类型提示基本相同:
get(classTag[Int])
您还可以从类实例中获取ClassTag
,并明确传递它:
val ct: ClassTag[Int] = ClassTag(1.getClass)
get(ct)
这些似乎都不是特别有用。
答案 1 :(得分:0)
不确定您要实现的目标,但您可以使用类型别名:
type clazz = Class[Int]
答案 2 :(得分:0)
您可以直接将其命名为:
val result = get[Int](ClassTag[1]);