[英]wrap a macro expansion method
我正在嘗試包裝播放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]}]"
}
}
根據我的理解,這是宏重定向。 但是您必須在單獨的項目中編寫此代碼,並將其用作項目的依賴項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.