3

我从某个类中获得了 MethodSymbol,现在我想创建一个代码,在某个树上调用该方法:

tpe.declarations.collect {
  case acc: MethodSymbol =>
    Apply(Select(tree.duplicate, ???), Nil)
}

是否可以以干净的方式获取方法的名称?

4

1 回答 1

1

Universe 有一个Select工厂方法,该方法将符号作为第二个参数,因此您只需编写以下内容:

tpe.declarations.collect {
  case acc: MethodSymbol => Select(tree.duplicate, acc)
}

请注意,您不需要Apply这里。

于 2013-07-02T10:28:10.437 回答