lambda表达式

来源:互联网 发布:淘宝哪里可以回收手机 编辑:程序博客网 时间:2024/06/07 23:39
import org.junit.jupiter.api.Test;/*Java8新特性之lambda表达式基础语法:-> 该操作符被称作箭头操作符或lambda操作符,分为左边跟有右边两大块左大块:lambda表达式的参数列表右大块:lambda表达式中所需执行的功能,即lambda体*///对一个数,进行任何运算之后返回public class test {    public Integer operation(Integer num1,LambdaTest num2) {       return num2.anyCalculate(num1);    }    //@Test    public void test1() {        System.out.println(operation(100,(x) -> x * x));//可以在这里进行任何运算        //因为此函数式接口只有一个参数,一条lambda语句,所以可以省掉参数x的小括号,以及返回值        //System.out.println(operation(100,x -> x*x));    }//对两个数,进行任何运算之后返回    public Integer operation2(Integer x,Integer y,LambdaTest2 num) {        return num.anyCalculate2(x,y);    }    @Test    public void test2() {        //当函数式接口中的方法参数有多个,并且有返回值,并且有多句Lambda语句时,需要用中括号        System.out.println(operation2(100,100,(x,y) -> {            System.out.println("多个语句要用中括号,并且需要加上return");            return x + y;//可以在这里进行任何运算        }));    }}
//下面是上面所用到的自定义的函数式接口
@FunctionalInterface/*申明是函数式接口(接口中只有一个方法),申明之后,如果写了两个方法,就会报错*/public interface LambdaTest {    public Integer anyCalculate(Integer num);}interface LambdaTest2{    public Integer anyCalculate2(Integer x,Integer y);}

//源码地址:https://github.com/xxhhxx/Java8/tree/2017.12.6/src(其中还写了一点关于stream API的简单用法)

原创粉丝点击