4

出于 DSL 目的,我想检测定义如下的方法:

  def "methodName"() {}

或者

  def "This is another method name"() {}

有没有办法使用反射来做到这一点?

4

1 回答 1

1

此信息在运行时不可用。即使使用 AST 转换,您也无法确定该方法是使用字符串定义的。

为此,您必须自己编写AntlrParserPlugin并使用自定义CompilerConfiguration. 然后在 methodDef from 中AntlrParserPlugin,当解析方法的名称时,您可以检查名称前面的字符是否是双引号。如果找到双引号,则在生成的 中添加自定义注解MethodNode,以便信息在运行时可用...

于 2012-06-22T14:43:11.033 回答