Как преобразовать Java `Consumer` в Groovy` Closure`? - PullRequest
1 голос
/ 04 августа 2020

У меня есть код Java, который должен вызывать Groovy API, который принимает Closure в качестве параметра. Как мне go преобразовать Java Consumer в Groovy Closure? Код выглядит примерно так:

final Consumer<Example> consumer = (Example e) -> {
  e.doSomething();
};
someGroovyApi(convertConsumerToClosure(consumer));

1 Ответ

1 голос
/ 04 августа 2020

Вместо того, чтобы пытаться преобразовать Consumer в Closure, просто создайте эквивалент Closure, например:

new Closure<Example>(outerObject) {
  public Example call(final Object o) {
    final Example e = (Example) o;

    e.doSomething();

    return e;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...