Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Groovy:如何在注释中连接字符串常量?_Groovy - Fatal编程技术网

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

Groovy:如何在注释中连接字符串常量?,groovy,Groovy,在java中,我可以编写@SomeAnnotation(“abc”+“cd”)。当我在groovy中执行同样的操作时,我得到了编译错误'expected。。。是一个内联常量'。如何在groovy中连接注释中的字符串常量?您不能,因为该表达式在groovy中不是编译时常量 你有几个选择 声明一个带有常量的普通Java接口,并从Groovy中使用它 @SomeAnnotation(Constants.MY_CONST) 如果可以更改注释的源代码,可以尝试使用 你也可以在这里玩,以肮脏的方式实现

在java中,我可以编写
@SomeAnnotation(“abc”+“cd”)
。当我在groovy中执行同样的操作时,我得到了编译错误'expected。。。是一个内联常量'。如何在groovy中连接注释中的字符串常量?

您不能,因为该表达式在groovy中不是编译时常量

你有几个选择

  • 声明一个带有常量的普通Java接口,并从Groovy中使用它

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

  • 你也可以在这里玩,以肮脏的方式实现你的目标。(很可能你不想玩AST)


无法使用像
'aaa'+'bbb'
这样的表达式并不是唯一的问题,您可以看到像
属性'value'应该具有'java.lang.String'类型这样的错误;但是找到了类型“java.lang.Object”
,即使是编译时表达式也是如此。这里有一个与可能的解决方法相关的问题。

您不能。这必须是编译时常量。