java lambda做参数_Java中的Lambda参数

我的追求是如何在函数中将lambda表达式作为参数?

我的意图是,当我执行sum方法时,方法accept中的参数被对象延续使用并使用(是吗?),我的疑问是我如何做才能使该对象延续成为使用value1 value2的结果,然后执行其他操作?

像X.sum(1,2,resultOfSum-> {system.out.println(resultOfSum);})一样;

(我已经试过了,日食使它像一个错误)

对不起,我的英语不太好.

这是我的代码.

public class ExampleClass {

public static void main(String[] args) {

X x = new X();

int nro ;

x.sum(1,2,"AN EXAMPLE OF LAMBDA"));

}

}

public class X{

public void sum(int value1,int value2,Consumer continuation)

{

continuation.accept(value2+value1);

}}

解决方法:

有趣的是,您当前的lambda表达式将对此有效(除非修复了system.out.println的拼写错误).下面只是表达它的一种更简洁的方式.

实际上,您正在编写一种方法,该方法接受两个值,产生一个值,并将其放置在某种类型的使用者中.该使用者可以是一个集合,可以处理结果的某些函数或另一个对象.

让我们暂时将lambda排除在等式之外,并使用匿名类将其写出来.

x.sum(1, 2, new Consumer() {

@Override

public void accept(final Integer value) {

// what should go here?

}

});

我们需要告诉这个结果要去哪里.我们有几种选择:

>集合(列表,集合等)

>新的参考对象

>接受参数的方法引用

让我们采用最简单的方法并简单地将其打印出来.

x.sum(1, 2, new Consumer() {

@Override

public void accept(final Integer value) {

System.out.println(value);

}

});

现在,这很有意义了-我们将两个数字的结果相加,将它们加在一起,然后将结果打印到屏幕上.

让我们将lambdas重新组合.这可以用lambda的方式表示:

x.sum(1, 2, System.out::println);

实际上,无论我们得到什么结果值,我们都希望允许println方法使用它.

标签:java-8,java,lambda

来源: https://codeday.me/bug/20191121/2053351.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值