Lambda 表达式
Lambda 表达式(本质上,就是简化语句书写)
Lambda 表达式,是 JDK 8 引入的新特性,使用更加简洁的代码可以且只可以创建函数式接口实例。
目录
正文
1. 语法规则
1.1 使用对象
Lambda 表达式只能用于只有一个抽象方法的接口(函数式接口)。1.2 使用规则
> Lambda 表达式由 **形参列表、箭头、代码块** 组成。 * 形参列表:允许省略形参类型;若是只有一个形参,则可以省略 (); * 箭头:必须写成 -> * 代码块:若是只有一条语句,则可以省略花括号;若是,只有一条 return 语句,则可以省略 return;2. 方法引用与构造器引用
2.1 引用类方法
```java //1. 定义函数式接口 @FunctionalInterface interface Converter { int convert(String from); }//1.1 使用常规 Lambda 表达式实现
Converter converter = from -> Integer.valueOf(from);
//1.2 引用类方法
Converter converter = Integer::valueOf;
<h3 id="2.2"> 2.2 引用特定对象的实例方法</h3>
```java
//1. 定义函数式接口
@FunctionalInterface
interface Converter {
int indexOf(String from);
}
//1.1 使用常规 Lambda 表达式实现
Converter converter = from -> "HelloWorld".indexOf(from);
//1.2 引用特定对象的方法,如 String:"HelloWorld"
Converter converter = "HelloWorld"::indexOf;
2.3 引用某类对象的实例方法
```java //1. 定义函数式接口 @FunctionalInterface interface Converter { String substring(String a, int b, int c); }//1.1 使用常规 Lambda 表达式实现
Converter converter = (a, b, c) -> a.substring(b, c);
//1.2 引用某类对象的实例方法
Converter converter = String::substring;
<h3 id="2.4"> 2.4 引用构造器</h3>
```java
//1. 定义函数式接口
@FunctionalInterface
interface JFrameFactory {
JFrame getJFrame(String title);
}
//1.1 使用常规 Lambda 表达式实现
Converter converter = (title) -> new JFrame(title);
//1.2 引用某类对象的实例方法
Converter converter = JFrame::new;
Happiness From Share.

浙公网安备 33010602011771号