java Lambda表达式入门学习
Lambda表达式,也可称为闭包,是java8最重要的新特性。 简单说,Lambda表达式牛逼在于可以把一个函数当作参数放进方法中。
先看Lambda表达式的语法 (parameters)-> expression; 或者(parameters)->{ statments;}
Lambda表达式有四大特性: 1.可选参数类型:参数类型可以不用写,自动识别。 2.可选括号:参数列表可以不用括号包围,当然,这需要只有一个参数。 3.可选花括号:如果方法体只有一条语句,可以不写花括号。 4.可选return:如果方法体只有一条能够返回值的表达式,则会自动返回。
下面来看例子:
package com.wenjun.test; /** * 数学运算 */ interface MathOperation{ /** * @param a * @param b * @return */ int operation(int a,int b); } /** * 打招呼 */ interface Greeting{ void say(String info); } /** * @author xuwenjun * @date 2019/8/9 */ public class Lambda { public static int operator(int a,int b,MathOperation mathOperation){ return mathOperation.operation(a, b); } public static void main(String[] args) { MathOperation add = (int a,int b)->a+b; MathOperation sub = (a,b)->a-b; MathOperation mul = (a,b)->{return a*b;}; MathOperation div = (int a,int b)->{return a/b;}; Greeting helloWorld = info-> System.out.println(info); System.out.println("1+1="+operator(1,1,add)); System.out.println("3-1="+operator(3,1,sub)); System.out.println("2*2="+operator(2,2,mul)); System.out.println("63="+operator(6,3,div)); helloWorld.say("hello world!"); } }
注意:
1.Lambda可以引用外面的变量,但是这个变量必须是final才行,也就是不允许再Lambda表达式内修改变量名。 2.Lambda表达式的参数列表不能出现跟局部变量名字一样的变量,会报错……
这次就写到这里,下次继续 如果有错误,烦请指出,谢谢!
上一篇:
IDEA上Java项目控制台中文乱码