【发布时间】:2014-12-11 23:24:13
【问题描述】:
考虑以下示例:
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 对象非常相似的东西,所以我想知道我是否可以直接利用它。
【问题讨论】:
标签: scala case-class shapeless labelled-generic