我读过很多关于如何在Java8中轻松定义一个lambda的例子。
Function<Integer,Integer> f1 = (x) -> Math.pow(x,2);当然,您可以像f2一样扩展主体:
Function<Integer,Integer> f2 = (x) -> {if (x < 0) return 0;
else return Math.pow(x,2);};但是我找不到一种方法来定义一个像f3这样具有可变数量参数的lambda
Function<Integer,Integer,Integer> f3 = (x,y) -> {return x + y};或者不带像f4这样的参数
Function<Double> f4 = () -> {return Math.random()};我几乎肯定你可以定义自己的函数接口(例如,通常创建一个新文件)来开发f3和f4,但是有什么方法可以轻松地定义它们吗?
发布于 2018-08-10 03:48:26
带有两个参数的函数称为BiFunction
BiFunction<Integer, Integer, Integer> f3 = (x, y) -> x + y;不带参数的函数称为Supplier
Supplier<Double> f4 = () -> Math.random();或者等效地:
Supplier<Double> f4 = Math::random;https://stackoverflow.com/questions/51774742
复制相似问题