Этот код кажется допустимым 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?