如何为具有 Function 属性的对象实现 flatMap?

问题描述 投票:0回答:1
import java.util.function.Function;

class FunctionCompose<T, R> {
    public final Function<T, R> function;

    public FunctionCompose(Function<T, R> function) {
        this.function = function;
    }

    public <U> FunctionCompose<T, U> map(Function<? super R, ? extends U> mapper) {
        return new FunctionCompose<>(function.andThen(mapper));
    }

    //code flatMap

    public R apply(T smth) {
        return function.apply(smth);
    }
}

我一直在编写 flatMap,它应该接受另一个 Function,该 Function 提供另一个 FunctionCompose 作为输出。该代码应该在以下情况下工作

FunctionCompose of type <String, Integer> flatMap with (Integer -> FunctionCompose<Integer, Integer>)

提前致谢

java flatmap
1个回答
0
投票
public <U> FunctionCompose<T, U> flatMap(FunctionCompose<? super R, ? extends U> ff) {
    return new FunctionCompose<>(function.andThen(ff.function));
}
© www.soinside.com 2019 - 2024. All rights reserved.