У меня есть скрипт, в котором одно из замыканий делегирует объект другого класса.
Теперь это замыкание не должно принимать никаких параметров или нескольких параметров, а внутри кода оно должно обращаться к переданным методам делегированного объекта
предположим, что
class Foo {
public boolean verifyName(String name);
public boolean verifyNameAndType(String name, PersonType type);
public boolean verifyNameAndTypeAndAge(String name, PersonType type, int age);
}
class Bar {
def getNames = { String name ->
if (verifyName(name)){
// do something
}
};
def getNames = { String name, PersonType personType ->
if (verifyNameAndType(name, personType)) {
// do something
}
}
def getNames = { String name, PersonType personType, int age ->
if (verifyNameAndTypeAndAge(name, personType, age)) {
// do something
}
}
Foo foo = new Foo()
Bar bar = new Bar();
bar.delegate = foo;
Closure NAME = bar.getNames;
NAME closure is available to user where he types
NAME('shakira');
NAME('affan', DOCTOR);
NAME('siddique', TEACHER, '45455555');
основано на параметре, оно должно вызывать определенное закрытие, но кажется, что множественное закрытие с одним и тем же именем недопустимо.
также пользователь может предоставить нулевые значения внутри параметров, но все же он будет вызывать определенныезакрытие, даже если оно равно нулю
e.g NAME('shakira', null) should call exact closure getNames(name, personType)
Я уже проверил этот URL, но моя логика не будет охватывать мою логическую часть, где пользователь предоставляет нулевые параметры внутри метода
Groovy Closure с параметрами