考虑以下示例:
import shapeless._
case class Foo(bar: String, baz: Boolean)
val labl = LabelledGeneric[Foo]
现在,类型labl
是(美化的)
LabelledGeneric[Foo] {
type Repr =
FieldType[Symbol @@ String("bar"), String] ::
FieldType[Symbol @@ String("baz"), Boolean] ::
HNil
}
它已经传达了我需要的信息,即案例类字段的名称。
我正在寻找的是一种方法,可以从labl
以下内容开始
"bar" :: "baz" :: HNil
即将单例类型中包含的信息具体化为一个值。
这可能吗?我可以使用宏,但我觉得我最终会重写与GenericMacros
无形对象非常相似的东西,所以我想知道是否可以直接利用它。