gpt4 book ai didi

java - 泛型函数的迭代

转载 作者:行者123 更新时间:2023-12-01 09:31:46 25 4
gpt4 key购买 nike

我想创建一个具有以下行为的函数列表:

     static List createList(){
Function<A,B> f1;
Function<B,C> f2;
Function<C,D> f3;
Function<D,A> f4;
return Arrays.asList(f1,f2,f3,f4);
}

这只是一个例子。我想要一个列表,可以有任何大小,并且下一个函数的参数是之前函数的结果。有什么方法可以参数化返回类型吗?列出什么?

我想将此列表提供给一个方法,该方法强制获取上述行为的列表。示例:

    public void process(List/** generic type? **/ list){
Object res = null;
for(Function f : list){
// do work
System.out.print("works result");
res = f.apply(res);
// do other work
}
}

虽然我希望“res”是通用的。与列表相同。还有函数。我喜欢使用“Function< ?, ?>”。您知道如何做到这一点吗?

最佳答案

忘记使用List,你不需要它。

在 Java 中,您可以直接组合函数并仅返回“整体”函数,从而避免客户端代码手动迭代函数列表(通过强制执行顺序来减少错误,使代码更简单)。

private static <A, B, C> Function<A, A> createFunction() {
Function<A, B> f1 = //TODO
Function<B, C> f2 = //TODO
Function<C, A> f3 = //TODO

return f1.andThen(f2).andThen(f3);
}

关于java - 泛型函数的迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39344642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com