ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Java笔记(13) 简单的Lambda表达式
[打印本页]
作者:
勿忘初心做自己
时间:
2023-4-6 22:55
标题:
Java笔记(13) 简单的Lambda表达式
lambda表达式在jdk1.8引入,属于函数式编程,可以在特定的场景中省去很多没有意义的代码,只留下核心逻辑,使代码看起来更简洁。
函数式接口
任何接口,如果只包含唯一一个抽象方法,那么它就是一个函数式接口。对于函数式接口,可以通过lambda表达式来创建该接口的对象。
lambda表达式的推导
1. 正常实现
//1. 首先定义一个函数式接口
interface LambdaInterface{ void lambda(); }
//2. 实现类
class LambdaImpl implements LambdaInterface{
public void lambda(){
System.out.println("lambda test");
}
}
//3. 一般实现
public class TestLambda{
//main函数
public static void main(String[] args){
//创建一个新对象,
LambdaImpl lambda = new LambdaImpl();
lambda.lambda();
}
}
复制代码
2. 静态内部类实现
将单独的实现类添加到Test类中,作为静态内部类,少定义了一个外部类
//1. 定义一个函数式接口
interface LambdaInterface { void lambda(); }
//2. 使用静态内部类实现
public class TestLambda {
//实现类作为静态内部类
static class LambdaImpl implements LambdaInterface {
public void lambda() {
System.out.println("lambda test!!");
}
}
public static void main(String[] args) {
new LmabdaImpl().lambda();
}
}
复制代码
3. 通过局部内部类实现
将静态内部类进一步简化为局部内部类
//1. 定义一个函数式接口
interface LambdaInterface { void lambda(); }
//2. 使用局部内部类实现
public class TestLambda{
public static void main(String[] args) {
//2.实现类作为局部内部类
class LambdaImpl implements LambdaInterface{
public void lambda(){ System.out.println("lambda test!!");}
}
}
new LambdaImpl().lambda();
}
复制代码
4. 通过匿名内部类实现
实现类是不需要类名的,只要实现方法即可,这里将其作为匿名内部类,进行类名的简化
//1. 定义一个函数式接口
interface LambdaInterface { void lambda(); }
//2. 使用匿名内部类实现
public class TestLambda{
public static void main(String[] args){
//直接在匿名内部类中实现LambdaInterface接口
LambdaTest lambda = new LambdaInterface(){
public void lambda(){
System.out.println("lambda test!!");}
}
lambda.lambda();//父类引用指向子类实例,多态
}
}
复制代码
5. lambda简化
由于接口式函数中只有一个方法,即使通过匿名内部类实现,也必须指定方法名,这是没有意义的。因此在lambda表达式中,将默认的类名和方法名省略掉
//1. 定义一个函数式接口
interface LambdaInterface { void lambda(); }
//2. 使用lambda表达式实现
public class TestLambda{
public static void main(String[] args){
//将指定类名和方法名的过程全部省略,直接使用()->{}代替
LambdaTest lambda = ()->{ System.out.println("lambda test!!");}
lambda.lambda();//父类引用指向子类实例,多态
}
}
复制代码
希望可以帮到你,还有未来的我
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4