在方法注释闭包中访问方法参数是否合法?

时间:2019-06-09 08:31:25

标签: groovy

根据我的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) {
}

第二种方法似乎是正确的方法,因为运行时将提取注释,创建闭包并使用正确的参数进行调用。

我的问题

  • 第二种方法确实是正确的方法吗?
  • intellij groovy插件真的有问题吗?

0 个答案:

没有答案