java - 在匿名类中表示柯里化的方式(从 lambda 表达式转换)。嵌套函数
问题描述
嗨我只想检查我的实施和理解是否正确。我试图将一种嵌套的 lambda 转换为匿名类
Function<Integer,Function<Integer,Function<Integer,Integer>>> h = x -> y -> z-> x + y + z
这是将其表示为匿名类的适当方式吗?
Function<Integer,Function<Integer,Function<Integer,Integer>>> h = new Function <> (
int x, y;
@Override
Function<Integer,Function<Integer,Integer>> apply ( Integer x)
return y-> z-> (x+y+z);
}
};
解决方案
为了将 lambda 转换为匿名函数,您应该逐位分解它,每个->
对应于一个匿名函数实例化,这最终会是这样的:
var h = new Function<Integer,Function<Integer,Function<Integer,Integer>>>() {
public Function<Integer,Function<Integer,Integer>> apply(Integer x) {
return new Function<Integer,Function<Integer,Integer>>() {
public Function<Integer,Integer> apply(Integer y) {
return new Function<Integer,Integer>() {
public Integer apply(Integer z) {
return x + y + z;
}
};
}
};
}
};
推荐阅读
- vue.js - 自动加载路由作为模块
- php - 如何在 Angular 和 PHP 中删除项目
- android - R8 问题:由于超出错误 GC 开销限制,无法设置 Proguard minifyEnabled
- swift - 如何在 Swift 的 tableView 中使用 if else 条件?
- unity3d - 不会出现真正的横幅,只是测试广告。怎么了?
- amazon-web-services - 如何以特定用户身份运行 aws cli 命令?
- android - RecyclerView 滚动条在 Android 的 Dialog Fragment 中不可见
- jsp - 在 Java 类方法中传递 HTML 元素的动态值
- java - Hibernate - 重新创建一个表并从一个表中分配主键(开始)
- laravel - 从控制器传递到视图时不显示数据