Java中lambda表达式的应用
一.概述
lambda表达式是一种函数式编程思想。
面向对象编程思想强调的是对象,必须通过对象的形式进行,在面对不同对象的同一方法,需要对同一方法进行相同内容的复写,形式更显复杂。
函数编程思想忽略对象的复杂用法—强调做什么,而不是以什么实行做
二.Lambda表达式的格式
1.标准格式
(参数列表)->{代码}
2.格式说明
小括内的语法与传统方法参数列表一致,没有参数就留空,有多个参数就用逗号分隔。
-> 是新引入的语法格式,代表指向动作。
大括号内的语法与传统方法体要求一致。
3.案列说明
public interface Lambda {
public void func1(String str);
}
public class Main {
public static void main(String[] args) {
String str="执行Lambda表达式";
Lambda la=new Lambda() {
@Override
public void func1(String str) {
System.out.println(str);
}
};
la.func1(str);
Lambda la1=(String)->{
System.out.println(str+"!!!");
};
la1.func1(str);
}
}
4.Lambda的省略形式
1.小括号中的形参类型可以省略。
2.如果小括号中只有一个参数的话,那么小括号可以省略。
3.如果大括号中只有一条语句,那么大括号、分号、return可以一起 省略。
例:
三.Lambda表达式的意义
1.Lambda表达式和匿名内部类,其实都是用来生成一个接口的实例。
与通过类来实现接口,然后类实例化的一个对象相比,Lambda表达式和匿名内部类语法更加简洁,不必去定义类,就可以生成接口的实例。
2.匿名内部类和Lambda表示式其实都是为了简化接口实例化的代码。
当接口的实例仅仅是拿过来使用1次时,单独去写一个类有点浪费了,不如直接一个表达式搞定。
Lambda比匿名内部类更加简单,但是Lambda表达式只能面向只有一个方法的接口,而匿名函数可以支持有任意多个方法的接口。
还没有评论,来说两句吧...