一、前言
JDK的升级目前有以下几个方面:
1、增加新的功能
2、修复Bug
3、性能优化
4、简化代码等
Lambda表达式就属于简化代码,用于简化匿名实现类,提供一种更加简洁的写法。Lambda表达式在Swift语言中称之为代码块,Lambda表达式可以认为是一种特殊的接口,该接口必须只有一个抽象方法。
@[TOC]二、语法格式
二、语法格式
(参数类型 参数名, 参数类型 参数名2,... )->{
//code
};
小括号中的内容就是方法中的参数列表,其中参数类型是可以省略的,当参数个数是一个时,也可以省略小括号。
花括号中的内容就是方法中的方法体,当方法体中只有一行代码时可以省略{},当方法体中只有一行代码且需要返回值时可以省略掉return。
三、作用
- 简化匿名实现类的书写
- 作为函数中的参数来传递
for example:
两个参数一个返回值:
Hello是一个很普通的接口,但接口中只能有一个抽象方法。
public interface Hello {
String sayHello(String name, String msg);
}
Main
public calss Main{
public static void main(String[] args) {
//将Lambda表达式赋值给一个接口,说明该表达式就是一种接口数据类型,只不过该接口只能有一个抽象数据方法。
//在JDK1.8中有个叫类型推断的东西,可以自动推断出类型的参数,由于Hello中只有一个抽象方法,知道方法名就知道参数列表了,从而就能推断出参数类型来。
Hello iHello = (String name,String msg) -> {
String hello = name + ":" + msg;
return hello;
};
//调用接口的方法
String content = iHello.sayHello("mengday", "happy new year everyone!");
System.out.println(content);
}
}