相关疑难解决方法(0)

从LabelledGeneric实例中提取标签值

请考虑以下示例:

import shapeless._

case class Foo(bar: String, baz: Boolean)
val labl = LabelledGeneric[Foo]
Run Code Online (Sandbox Code Playgroud)

现在,类型labl是(美化)

LabelledGeneric[Foo] {
  type Repr =
    FieldType[Symbol @@ String("bar"), String] ::
    FieldType[Symbol @@ String("baz"), Boolean] ::
    HNil
}
Run Code Online (Sandbox Code Playgroud)

它已经传达了我需要的信息,即案例类字段的名称.

我正在寻找的是一种从labl某种方式走向某种方式的方式

"bar" :: "baz" :: HNil
Run Code Online (Sandbox Code Playgroud)

即将单例类型中包含的信息具体化为值.

这可能吗?我可以使用一个宏,但我觉得我最终会在无形状中重写与该GenericMacros对象非常相似的东西,所以我想知道我是否可以直接利用它.

scala case-class shapeless labelled-generic

18
推荐指数
1
解决办法
2834
查看次数

标签 统计

case-class ×1

labelled-generic ×1

scala ×1

shapeless ×1