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>)
提前致谢
public <U> FunctionCompose<T, U> flatMap(FunctionCompose<? super R, ? extends U> ff) {
return new FunctionCompose<>(function.andThen(ff.function));
}