首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >带多参数的Java8的Function.Function

带多参数的Java8的Function.Function
EN

Stack Overflow用户
提问于 2018-08-10 03:46:01
回答 1查看 17.2K关注 0票数 17

我读过很多关于如何在Java8中轻松定义一个lambda的例子。

代码语言:javascript
复制
Function<Integer,Integer> f1 = (x) -> Math.pow(x,2);

当然,您可以像f2一样扩展主体:

代码语言:javascript
复制
Function<Integer,Integer> f2 = (x) -> {if (x < 0)  return 0;
                                       else return Math.pow(x,2);};

但是我找不到一种方法来定义一个像f3这样具有可变数量参数的lambda

代码语言:javascript
复制
Function<Integer,Integer,Integer> f3 = (x,y) -> {return x + y};

或者不带像f4这样的参数

代码语言:javascript
复制
Function<Double> f4 = () -> {return Math.random()};

我几乎肯定你可以定义自己的函数接口(例如,通常创建一个新文件)来开发f3f4,但是有什么方法可以轻松地定义它们吗?

EN

回答 1

Stack Overflow用户

发布于 2018-08-10 03:48:26

带有两个参数的函数称为BiFunction

代码语言:javascript
复制
BiFunction<Integer, Integer, Integer> f3 = (x, y) -> x + y;

不带参数的函数称为Supplier

代码语言:javascript
复制
Supplier<Double> f4 = () -> Math.random();

或者等效地:

代码语言:javascript
复制
Supplier<Double> f4 = Math::random;
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51774742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档