JDK8-17新特性

作者 : admin 本文共1008个字,预计阅读时间需要3分钟 发布时间: 2024-06-16 共1人阅读

一、JDK8新特性:Lambda表达式

1.Lambda表达式及其使用举例

Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。使用它可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。

Comparator com1 =new Comparator(){
    @Override
    public int compare(Integer o1,Integer o2){
    return Integer.compare(o1,o2);
    }
};
Comparatorcom2 = (Integer o1,Integer o2)->{
    return Integer.compare(o1,o2);
};

(1)lambda表达式使用:

->:lambda操作符或箭头操作符
->的左边:lambda形参列表,对应着要重写的接口中的抽象方法的形参列表,由一对小括号表示
->的右边:lambda体,对应着接口的实现类要重写的方法的方法体,由一对中括号表示
形参列表中的数据类型可以省略,因为可由编译器推断得出,称为"类型推断"
lambda表达式若只需要一个参数时形参列表的小括号可以省略
lambda体只有一条语句时return与大括号都可以省略,两个需要同时省略

(2)lambda表达式的本质:

a.lambda表达式作为接口的实现类的对象;

b.lambda表达式是一个匿名函数

2.函数式接口:

(1)概念:如果接口中只声明一个抽象方法,则此接口称为函数式接口;因为只有给函数式接口提供实现类的对象时才可以使用lambda表达式;

(2)API中函数式接口所在的包:java.util.function

(3)4个基本的函数式接口

JDK8-17新特性插图

(4)消费型接口:有形参,但是返回值为void

JDK8-17新特性插图(1)

(5)供给型接口:无形参,有返回值

JDK8-17新特性插图(2)

(6)函数型接口:既有参数也有返回值

JDK8-17新特性插图(3)

JDK8-17新特性插图(4)

(7)判断型接口:有形参,返回值是boolean的结果

JDK8-17新特性插图(5)

3.Lambda表达式的语法规则:

->:lambda操作符或箭头操作符
1.->的左边:lambda形参列表,对应着要重写的接口中的抽象方法的形参列表,由一对小括号表示
参数的类型都可以省略;如果形参只有一个则一对()也可以省略;
2.->的右边:lambda体,对应着接口的实现类要重写的方法的方法体,由一对{}表示
如果方法体中只有一条执行语句则{}可以省略;如果有return关键字则必须一并省略;
本站无任何商业行为
个人在线分享 » JDK8-17新特性
E-->