Java
基础知识
01概述
02变量
03运算符
04程序控制语句
05数组
06面向对象编程
07代码练习
08重载
09作用域
10构造方法&构造器
11this
12包
13修饰符
14封装
15继承
16super
17覆盖&重写
18多态
19零钱通项目
20类变量&类方法
21抽象类
22接口
23内部类
24枚举
25泛型
26常用API
27lambda表达式
28正则表达式
29异常
30File&IO流
31日志技术
32多线程
33网络编程
-
+
首页
27lambda表达式
## 概述 - lambda表达式是jdk8新增加的一种语法形式,作用:用于简化匿名内部类的代码写法 > 使用前提 只能简化函数式接口的匿名内部类 > 格式 ``` (被重写方法的形参列表)->{ 被重写方法的方法体代码 } ``` > demo ```java package com.xbxaq.lambda_; public class Test { public static void main(String[] args) { Animal animal = new Animal(){ @Override public void run() { System.out.println("run......"); } }; animal.run(); Swimming s = ()->{ System.out.println("swimming......"); }; s.swim(); } } interface Swimming{ void swim(); } abstract class Animal{ public abstract void run(); } ```  ## JDk8新特性 > 省略写法 - 参数类型可以省略不写 - 如果只有一个参数,参数类型可以省略,同时()也可以省略 - 如果lambda表达式中的方法体只有一行代码,可以省略大括号不写,同时要省略分号 如果这行代码是return语句,也必须去掉return不写 例如:Arrays.setAll(prices, value -> prices[value] * 08 ); > 静态方法的引用 - 类名::静态方法 - 使用场景:如果某个lambda表达式里只是调用一个静态方法,并且前后参数的形式一致,就可以使用静态方法引用 例如:Arrays.sort(students, CompareByData::compareByAge); CompareByData-类名,compareByAge-静态方法名 > 实例方法的引用 - 对象名::实例方法 - 使用场景:如果某个lambda表达式里只是调用一个实例方法,并且前后参数的形式一致,就可以使用实例方法引用 > 特定类型的方法引用 - 类型::方法 - 使用场景:l如果某个Lambda表达式里只是调用一个实例方法,并且前面参数列表中的第一个参数是作为方法的主调,后面的所有参数都是作为该实例方法的入参的,则此时就可以使用特定类型的方法引用。 > 构造器的引用 - 类名::new - 使用场景:如果某个Lambda表达式里只是在创建对象,并且前后参数情况一致,就可以使用构造器引用。
毛林
2025年9月7日 12:13
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码