假设我有一个扩展一些抽象类的对象
case class Id[T] private(v: String)
object SomeObj extends SomeAbstractClass[SomeCaseClass, AnotherObj.type, Id[SomeCaseClass]]
是否可以在运行时从SomeObj获取以下类型参数?
答案 0 :(得分:3)
假设这些导入和定义(对于一个独立的示例):
1
明确引用(None, 100, 100, 1024)
:
import scala.reflect.runtime.universe._
trait Foo[A, B, C]
object Bar extends Foo[Int, String, Option[Short]]
不参考Bar.type
:
internal
.thisType(typeOf[Bar.type].typeSymbol.asClass)
.baseType(typeOf[Foo[_,_,_]].typeSymbol.asClass)
.typeArgs
两者都给出:
Bar.type
两种解决方案均受this answer here的启发。