Я знаю, что TypeToken гуавы является способен это:Получить содержащий общие типы с ClassTag
class C[I, O]
class A[T] {
val tok = new TypeToken[T](getClass){}
}
val a = new A[C[Integer, String]]{}
println(a.tok) // somepackage.C<java.lang.Integer, java.lang.String>
Но с ClassTag SCALA, я получаю:
class B[T: ClassTag] {
// runtime class
val clazz = implicitly[ClassTag[T]].runtimeClass
// also tries to construct a guava type token
val tok = TypeToken.of(clazz).asInstanceOf[TypeToken[T]]
}
val b = new B[C[Integer, String]]
println(b.clazz) // class somepackage.C
println(b.tok) // somepackage.C
Так с ClassTag, генетические типы содержащихся C теряются. Возможно ли получить некоторый пакет.C с ClassTag или другими вещами в scala?
Спасибо!
Спасибо за объяснение. Но можем ли мы создать java.lang.reflect.Type из TypeTag? – darkjh
@ darkjh Я так не думаю. –