Groovy:如何在注释中连接字符串常量?

时间:2016-07-15 08:43:12

标签: groovy

在java中我可以写@SomeAnnotation("abc"+"cd")。当我在groovy中做同样的事情时,我得到了编译错误'期望...是一个内联常量'。如何在groovy中的注释中连接字符串常量?

1 个答案:

答案 0 :(得分:3)

你不能因为这个表达式不是Groovy中的编译时常量。

这里有几个选项

  • 使用常量声明一个普通的Java接口,并使用Groovy

    @SomeAnnotation(Constants.MY_CONST)
    
  • 如果您可以更改注释的源代码,可以尝试使用closure annotation parameters

  • 您也可以在此处使用compile-time AST transformations以肮脏的方式实现目标。 (很可能你不想玩AST)

无法使用像'aaa' + 'bbb'这样的表达式并不是唯一的问题,即使使用编译时表达式,您也可以看到Attribute 'value' should have type 'java.lang.String'; but found type 'java.lang.Object'之类的错误。以下是相关问题GROOVY-3278,其中包含可能的解决方法。