Lambda表达式
Lambda概述
- Lambda表达式时JDK8开始后的一种新语法格式
- 作用:简化匿名内部类的代码写法
Lambda表达式的简化格式

注意:Lambda表达式只能简化函数式接口的匿名内部类的写法形式
什么是函数式接口?
- 首先必须是接口、其次接口中有且仅有一个抽象方法的形式
- 通常我们会在接口上加上一个 @FunctionalInterface 注解,标记该接口必须是满足函数式接口

| |
| |
| |
| |
| public class LambdaDemo2 { |
| public static void main(String[] args) { |
| |
| |
| |
| |
| |
| |
| |
| |
| Swimming s1 = () -> { |
| System.out.println("老师游泳贼六"); |
| }; |
| go(s1); |
| System.out.println("--------------------"); |
| |
| go(new Swimming() { |
| @Override |
| public void swim() { |
| System.out.println("学生游泳很开心"); |
| } |
| }); |
| |
| go(()->{ |
| System.out.println("学生游泳很开心"); |
| }); |
| |
| } |
| |
| public static void go(Swimming s){ |
| System.out.println("开始..."); |
| s.swim(); |
| System.out.println("结束..."); |
| } |
| } |
| |
| @FunctionalInterface |
| interface Swimming{ |
| void swim(); |
| } |

Lambda实战-简化常见函数式接口
Lambda表达式简化Comparator接口的匿名形式

Lambda表达式简化按钮监听器ActionListener的匿名内部类形式

| public class LambdaDemo3 { |
| public static void main(String[] args) { |
| Integer[] ages1 = {34, 12, 42, 23}; |
| |
| |
| |
| |
| Arrays.sort(ages1, new Comparator<Integer>() { |
| @Override |
| public int compare(Integer o1, Integer o2) { |
| return o2 - o1; |
| } |
| }); |
| |
| Arrays.sort(ages1,(Integer o1, Integer o2)-> { |
| return o2 - o1; |
| }); |
| |
| System.out.println(Arrays.toString(ages1)); |
| |
| System.out.println("---------------------"); |
| JFrame win = new JFrame("登录"); |
| JPanel panel = new JPanel(); |
| win.add(panel); |
| win.setSize(400,300); |
| win.setVisible(true); |
| |
| JButton btn = new JButton("按钮"); |
| JButton btn2 = new JButton("点我!"); |
| btn.addActionListener(new ActionListener() { |
| @Override |
| public void actionPerformed(ActionEvent e) { |
| System.out.println("点我,点我,有人点我!"); |
| } |
| }); |
| |
| btn2.addActionListener(e -> System.out.println("点我,点我,有人点我!")); |
| |
| panel.add(btn); |
| panel.add(btn2); |
| } |
| } |
Lambda表达式的省略规则

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!