尝试提取字段值,但在使用符号
调用时不起作用case class Dog(name: String, age: Int)
val dog = Dog("rocky", 5)
val repr = LabelledGeneric[Dog].to(dog)
val sy = 'name
repr.get(sy)
但如果我这样做
repr.get('name)
答案 0 :(得分:1)
第一个示例有效,因为宏扩展实际上将Symbol
实例转换为Witness
实例(使用Witness.mkWitness
),这实际上是repr.get
所期望的。
为了完成这项工作,我们需要创建一个我们想要的Witness
实例:
import shapeless.{LabelledGeneric, Witness}
case class Dog(name: String, age: Int)
val dog = Dog("rocky", 5)
val repr = LabelledGeneric[Dog].to(dog)
val nameWitn = Witness('name)
repr.get(nameWitn)