带参数的方法引用

时间:2014-11-14 00:23:54

标签: java java-8 currying

我正在寻找一种方法将制表符分隔的String映射到数组。目前,我正在使用lambda表达式:

stream.map(line -> line.split("\t"));

有没有办法用方法参考来做?我知道stream.map(String::split("\t"))不起作用,但我想知道是否有替代方案。

1 个答案:

答案 0 :(得分:7)

您可以这样做:

static<T,U,R> Function<T,R> curry(BiFunction<? super T, ? super U, ? extends R> f, U u) {
    return t -> f.apply(t, u);
}

然后你就能做到:

stream.map(curry(String::split, "\t"));