根据我的IntelliJ IDE,此代码似乎是有效的Groovy,但编译失败
// I am trying to access parameters to the function
@MyAnnotation(value = { a + b.size() + c ? 1 : 2 })
void myFunction(int a, String b, Boolean c) {
}
此代码在IDE中被标记为错误(关于重复的变量名),但在编译期间成功
// I am explicitly naming parameters to the closure
@MyAnnotation(value = { int a, String b, Boolean c -> a + b.size() + c ? 1 : 2 })
void myFunction(int a, String b, Boolean c) {
}
第二种方法似乎是正确的方法,因为运行时将提取注释,创建闭包并使用正确的参数进行调用。
我的问题