1
我试图总结剧中JSON写入宏扩展包宏扩展方法
def encoder[T] = Json.writes[T]
但T
是未知的,这样就不会编译,它抱怨
no unapply method found
我知道我可以用JsMacroImpl.reads
扩展代替Json.writes[T]
。 有没有更好的方法来做到这一点?
我试图总结剧中JSON写入宏扩展包宏扩展方法
def encoder[T] = Json.writes[T]
但T
是未知的,这样就不会编译,它抱怨
no unapply method found
我知道我可以用JsMacroImpl.reads
扩展代替Json.writes[T]
。 有没有更好的方法来做到这一点?
我在一段时间后面临类似的问题。你可以做这样的事情。
创建一个对象,并在里面编写编码器方法作为宏的方法。
object SomeObj {
def encoder[T] = macro encoderRedirect_impl[T]
def encoderRedirect_impl[T : c.WeekTypeTag](c:Context) = {
q"Json.writes[${c.weakTypeOf[T]}]"
}
}
这是我理解的宏重定向。但是你必须在独立的项目中编写这段代码,并将其用作项目的依赖项。
不会用scala编译2.11 – jilen 2014-08-29 03:36:43
@tiran可能意味着weakTypeOf。我已经修复了代码。 – 2014-08-29 07:58:17
@EugeneBurmako尽管'weekTypeOf'对于“专业菜单” – 2014-08-29 09:08:34