0

我正在尝试使用 Scala Meta 编写注释,以便可以从现有对象生成另一个案例类。

但是当我尝试这样做时:

MyObject.parse[Source].show[Structure]

我收到了这个错误:

错误:(5、20)方法解析的参数不足:(隐式转换:scala.meta.common.Convert[domain.MyObject.type,scala.meta.inputs.Input],隐式解析:scala.meta.parsers。 Parse[scala.meta.Source],隐式方言:scala.meta.Dialect)scala.meta.parsers.Parsed[scala.meta.Source]。未指定值参数转换、解析、方言。MyObject.parse[源].show[结构];} ^

我很困惑,因为根据他们的教程,这就是我需要从 http://scalameta.org/tutorial/#.parse[T]开始

我怎样才能反映这个对象循环遍历所有属性?

谢谢

4

1 回答 1

2

parse[Source]解析文本。您可以尝试以下方法

import scala.meta._
"object MyObject".parse[Source].get.show[Syntax]

如果您正在创建注释,那么它可能如下所示:

@MyAnnotation
object MyObject

在另一个模块中:

import scala.meta._
class MyAnnotation extends StaticAnnotation {
  inline def apply(defn: Any): Any = meta { 
    defn.show[Syntax]
    defn
  }
}
于 2016-12-28T14:32:45.267 回答