【发布时间】:2021-06-24 12:26:36
【问题描述】:
这是一个后续问题:
How to get the name of a case class field as a string/symbol at compile time using shapeless?
假设我要写一个可以转换产品类型的递归转换器:
case class Prod (
a: Int,
b: String
)
进入记录,但与使用每个案例类字段(a,b)作为键的上述问题不同,我想直接使用每个类名称或类型/类型构造函数名称。所以这个产品类型在编译时变成了一个记录:
"Int" ->> Int
"String" ->> String
(可能不是一个足够好的用例,但你明白了)
其中一个关键步骤是在编译时使用反射来获取每个类的名称,并将它们转换为 Singleton 类型或无形见证。我想知道这个功能是否已经在某处提供?还是我绝对需要一个白盒宏来实现它?
【问题讨论】:
标签: scala shapeless scala-reflect singleton-type scala-2.13