Есть ли способ передать интерфейсы как параметры varargs для метода в groovy?Как передать интерфейсы в качестве параметров varargs для метода в Groovy?
Вот что я пытаюсь сделать:
interface Handler {
void handle(String)
}
def foo(Handler... handlers) {
handlers.each { it.handle('Hello!') }
}
foo({ print(it) }, { print(it.toUpperCase()) })
Когда я запускаю следующий код, я получаю ошибку: No signature of method: ConsoleScript8.foo() is applicable for argument types: (ConsoleScript8$_run_closure1, ConsoleScript8$_run_closure2) values: [[email protected], [email protected]]
Что мне нужно изменить?
Ницца! Upvoted! :) – Opal
@ Опал только с одним обработчиком, ваше решение короче - так что он отдал пользу;) – cfrick
@cfrick Это кажется достаточно элегантным. Спасибо! – kshep92