如何使用Scala元解析对象?

如何使用Scala元解析对象?,scala,metaprogramming,scalameta,Scala,Metaprogramming,Scalameta,我试图使用Scala Meta编写注释,以便从现有对象生成另一个case类 但当我尝试这样做时: 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编写注释,以便从现有对象生成另一个case类

但当我尝试这样做时:

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.dial)scala.meta.parsers.Parsed[scala.meta.Source]。 未指定的值参数转换、解析、方言。 MyObject.parse[Source].show[Structure];} ^

我很困惑,因为根据他们的教程,这就是我需要开始的

如何将此对象反射到所有属性中


谢谢

解析[源]
解析文本。你可以试试下面的方法

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
  }
}

解析[源代码]
解析文本。你可以试试下面的方法

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
  }
}

我还尝试了.parse[Type],这也不起作用。如何使用类元反射?似乎
scala.meta
是编译时。我不认为它可以像运行时的反射一样使用。我也尝试过使用.parse[Type],这也不起作用。如何使用类元反射?似乎
scala.meta
是编译时。我认为它不能像运行时的反射那样使用。