编程语言
首页 > 编程语言> > 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<Integer> continuation)
    {
        continuation.accept(value2+value1);
    }}

解决方法:

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

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

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

x.sum(1, 2, new Consumer<Integer>() {
    @Override
    public void accept(final Integer value) {
        // what should go here?
    }
});

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

>集合(列表,集合等)
>新的参考对象
>接受参数的方法引用

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

x.sum(1, 2, new Consumer<Integer>() {
    @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