trait EntityAutoInc[PK, E <: EntityAutoInc[PK, E]] extends Entity[PK] { self: E =>
import shapeless._
import tag.@@
import tag.$at$at
def copyWithNewId(id : PK)(implicit mkLens: MkFieldLens.Aux[E, Symbol @@ Witness.`"id"`.T, PK]) : E =
{
(lens[E] >> 'id).set(self)(id)
}
这是从&#34; PlayAuthenticate中抽出的代码 - 使用示例应用程序Play!框架2(Scala)&#34;。
我收到错误&#34;需要稳定的标识符,但找不到shapeless.Witness.selectDynamic(&#34; \&#34; id \&#34;&#34;)。&#34;
和
&#34;找不到参数mkLens的隐含值:shapeless.MkFieldLens [E,带有shapeless.tag.Tagged的符号[String(&#34; id&#34;)]] 和
没有足够的方法参数&gt;&gt; :(隐式mkLens:shapeless.MkFieldLens [E,符号与shapeless.tag.Tagged [String(&#34; id&#34;)]])shapeless.Lens [E ,mkLens.Elem]。未指定的值参数mkLens。&#34;
我是scala和playframework的新手,所以仍然在学习过程中。有人可以帮我纠正这个错误。