Lambda表达式——jdk1.8的新特性
- 作用:简化匿名内部类
- 格式:()->{}
各符号含义:
- () : 重写的方法的参数列表
- -> : 箭头符号 Lambda符号:具有上下文推到的作用
- {} : 重写的抽象方法的方法体
注:抽象类:可以使用匿名内部类,但是不能使用Lambda表达式
public class LambdaDemo01 {
public static void main(String[] args) {
Smoke s=null;
s=new Smoke(){
@Override
public String smoking() {
System.out.println("吸烟有害身体健康");
return null;
}
};
//指向swim接口实现类的对象
//Lambda表达式写法1
/*s=()->{
System.out.println("吸烟有害身体健康!!!!!!!!!");
};*/
//写法2: 如果Lambda表示式的方法体语句只有一句,前后的{}可以省略
//s=()->System.out.println("吸烟有害身体健康!!!!!!!!!");
//写法3:参数的数据类型可以省略
//s=(x,y)->System.out.println("吸烟有害身体健康!!!!!!!!!"+x+y);
//写法4:如果参数只有一个,前后()可以省略
//s= x -> System.out.println("吸烟有害身体健康!!!!!!!!!"+x);
//写法5:如果方法有返回值,并且方法体只有return语句,前后的{}和return关键字都可以省略
/*s= x -> {
System.out.println("吸烟有害身体健康!!!!!!!!!"+x);
return "你好";
} ;*/
s= () -> "哈哈";
// System.out.println(s.smoking(1));
}
}
//函数式接口
//@FunctionalInterface
interface Smoke{
String smoking();
}