How do I get type parameter from type with type parameter, inside scala macro?

后端 未结 1 850
北恋
北恋 2021-01-22 11:37

I have a type (that, in this case, represents return type of a method), and it is of the form List[Int] (for example).

I know that the type carries that inf

1条回答
  •  借酒劲吻你
    2021-01-22 12:15

    You can use the TypeRef extractor:

    import reflect.runtime.universe._
    // or in a macro "c.universe._"
    
    val tpe = weakTypeOf[List[Int]]
    
    // extract type parameters
    val TypeRef(_,_, tps) = tpe
    
    // tps has type List[Type]
    println(tps.head) // Int
    

    0 讨论(0)
提交回复
热议问题