不,方法引用不支持链接。在您的示例中,不清楚这两个方法中的哪一个应该接收第二个参数。
但如果你坚持这样做……
static <V,T,U> BiConsumer<V,U> filterFirstArg(BiConsumer<T,U> c, Function<V,T> f) {
return (t,u)->c.accept(f.apply(t), u);
}
…
BiConsumer<MyBean, String> c = filterFirstArg(List::add, MyBean::getList);
该方法的命名建议将其视为采用现有的BiConsumer
(here, List.add
)并添加一个函数(这里,MyBean.getList()
) 到它的第一个参数。很容易想象用于过滤第二个参数或同时过滤两个参数的等效实用方法可能是什么样子。
但是,它主要用于将现有实现与其他操作相结合。在你的具体例子中,使用部位并不比普通的lambda表达式好
BiConsumer<MyBean, String> c = (myBean, id) -> myBean.getList().add(id);