如何在 scala shapeless 中显示 HList 的类型
how to show the type of a HList in scala shapeless
如何将列表的类型获取为字符串,以便打印它。例如 "Int :: Long :: String :: HNil"
val gen = Generic[?]
val typeString: String = ???
println("The type is " + typeString)
我知道字符串,如果它不是很有用,通常你想要 gen.Repr
中的类型
使用shapeless.Typeable
:
scala> import shapeless._
import shapeless._
scala> case class A(i: Int, s: String)
defined class A
scala> val gen = Generic[A]
gen: shapeless.Generic[A]{type Repr =
shapeless.::[Int,shapeless.::[String,shapeless.HNil]]} =
anon$macro@56639061
scala> println(Typeable[gen.Repr].describe)
Int :: String :: HNil
如何将列表的类型获取为字符串,以便打印它。例如 "Int :: Long :: String :: HNil"
val gen = Generic[?]
val typeString: String = ???
println("The type is " + typeString)
我知道字符串,如果它不是很有用,通常你想要 gen.Repr
使用shapeless.Typeable
:
scala> import shapeless._
import shapeless._
scala> case class A(i: Int, s: String)
defined class A
scala> val gen = Generic[A]
gen: shapeless.Generic[A]{type Repr =
shapeless.::[Int,shapeless.::[String,shapeless.HNil]]} =
anon$macro@56639061
scala> println(Typeable[gen.Repr].describe)
Int :: String :: HNil