我最近发现了Shapeless,我想知道是否可以用它做以下事情。让我们说我有这个密封的特质和案例类:
sealed trait T
case class C1() extends T
case class C2() extends T
我定义了这种形式的可扩展记录:
val myRecords = (C1 ->> SomeObj1) :: (C2 ->> SomeObj2) :: HNil
但是,如果我有val x = C1()
,我如何从SomeObj1
中获取myRecords
?
我不想在这里进行模式匹配,我想保留SomeObj1
和SomeObj2
的类型信息。
另一个问题是,如何强制用户将trait T
扩展到另一个案例类,以便将相应的记录添加到myRecords
。
答案 0 :(得分:0)
您只需使用, 10
上预定义的apply
方法。
myRecords