Lamda表达式

函数式接口

  • 任何接口,如果只包含唯一一个抽象方法,那么他就是一个函数式接口
public interface Runnable{
public abstract void run();
}
  • 对于函数式接口,我们可以通过lambda表达式来创建该接口的对象

lambda表达式

练习一:

//推导Lambda表达式
public class TestLambda1 {
// 3.静态内部类
static class Like2 implements ILike{
@Override
public void lambda() {
System.out.println("i like lambda-->静态内部类");
}
}
public static void main(String[] args) {
ILike like = new Like();
like.lambda();
like = new Like2();
like.lambda();
// 4.局部内部类
class Like3 implements ILike{
@Override
public void lambda() {
System.out.println("i like lambda-->局部内部类");
}
}
like = new Like3();
like.lambda();
// 5. 匿名内部类,没有类的名称,必须借助接口或者父类
like = new ILike() {
@Override
public void lambda() {
System.out.println("i like lambda-->匿名内部类");
}
};
like.lambda();
// 6. 用lambda简化
like =()->{
System.out.println("i like lambda-->lambda简化");
};
like.lambda();
}
}
// 1. 定义一个函数式接口
interface ILike{
void lambda();
}
// 2. 实现类
class Like implements ILike{
@Override
public void lambda() {
System.out.println("i like lambda");
}
}

  • 运行结果
    image

练习二:

public class TestLambda2 {
public static void main(String[] args) {
Love love = null;
//1. Lambda表达式简化
love =(int a)-> {
System.out.println("i love "+a);
};
//2. 简化括号
love =a-> {
System.out.println("i love "+a);
};
/*
love =(a,b)-> {
System.out.println("i love "+a);
System.out.println("i love 999");
};
*/
//3. 去掉花括号
love =a->System.out.println("i love "+a);
love.love(666);
/*总结:
lambda表达式只能有一行代码情况下才能简化成为一行,如果有多行,那么就用代码块包裹
前提:接口是函数式接口
多个参数也可以去掉参数类型,要去掉必须全部去掉,必须加上括号
*/
}
}
// 函数式接口
interface Love{
void love(int a);
}

总结:
lambda表达式只能有一行代码情况下才能简化成为一行,如果有多行,那么就用代码块包裹
前提:接口是函数式接口
多个参数也可以去掉参数类型,要去掉必须全部去掉,必须加上括号


为什么要使用Lambda表达式

  • 避免匿名内部类定义过多
  • 使代码看起来简洁
  • 去掉了一堆没有意义的代码,留下核心代码
posted @   流浪猫老大  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示