Java8新特性_Lambda表达式

Lambda表达式:就是一个匿名函数

注意:什么是匿名函数?就是只能使用一次,不能重复使用,因为他没有对象名,也仅能只继承一个父类或者实现一个接口

1.语法:增加了一个新的操作符  - >(箭头操作符)

              ->左侧:参数列表

      ->右侧:表达式中所需执行的功能,即 Lambda体

2.Lambda表达式需要"函数式接口"的支持

  注意:函数式接口:接口中只有一个抽象方法的接口。

             可以使用注解@FunctionalInterface修饰:作用是可以检查是否是函数式接口(通俗的说就一个方法,不然会提示错误的)

3.内置的四大核心函数式接口

a. Consumer<T> : 消费型接口     void accept(T t);

b. Supplier<T> : 供给型接口      T get();

c. Function<T, R> : 函数型接口       R apply(T t);

d. Predicate<T> : 断言型接口       boolean test(T t);

举例:

 4.方法引用:将方法引用理解为 Lambda 表达式的另外一种表现形式

a. 对象的引用 :: 实例方法名

b. 类名 :: 静态方法名

c. 类名 :: 实例方法名

注意:①方法引用所引用的方法的参数列表与返回值类型,需要与函数式接口中抽象方法的参数列表和返回值类型保持一致!

           ②若Lambda 的参数列表的第一个参数,是实例方法的调用者,第二个参数(或无参)是实例方法的参数时,格式: ClassName::MethodName

5、构造器引用 :构造器的参数列表,需要与函数式接口中参数列表保持一致!

a. 类名 :: new

 

 

6、数组引用

a. 类型[] :: new;

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2019-11-11 11:12  毒草_java  阅读(226)  评论(0)    收藏  举报