Для некоторых функций метода Java 8:
class Foo { Bar getBar() {} }
class Bar { Baz getBaz() {} }
Состав двух аксессуаров выглядит следующим образом:
Function<Foo, Bar> getBarFromFoo = Foo::getBar;
Function<Bar, Baz> getBazFromBar = Bar::getBaz;
Function<Foo, Baz> getBazFromFoo = getBarFromFoo.andThen(getBazFromBar);
Есть ли более сжатый способ? Кажется, это работает
((Function<Foo, Bar>) Foo::getBar).andThen(Bar::getBaz)
Но это довольно уродливо. Внешние параны имеют смысл по причинам приоритета, но почему это необходимо?
(Foo::getBar::getBaz
было бы неплохо, но, увы...)