Java 8 Двойная ссылка на функцию? - PullRequest
4 голосов
/ 17 марта 2020

Предположим, у меня есть этот класс:

class Dependency{      
   public Dependency reverse() { ... } // returns this Dependency after some reverse OP

   public int doSomething(int param) { ... }

}

Могу ли я использовать его следующим образом:

Optional<Integer> opt = ...
Dependency dep = new Dependency();

opt.map(dep::reverse::doSomething);

Это было бы довольно чисто, но возможно ли это? Чтобы применить преобразование (reverse) к Dependency, а затем применить метод doSomething?

1 Ответ

6 голосов
/ 17 марта 2020

Если я вас правильно понял, похоже, что reverse() не будет потреблять Integer, поэтому вы можете просто сделать:

opt.map(dep.reverse()::doSomething);
...