Это законный код для доступа к параметрам метода в закрытиях аннотаций методов? - PullRequest
0 голосов
/ 09 июня 2019

Этот код кажется допустимым Groovy для моей IntelliJ IDE, но не удается скомпилировать

// 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?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...