java函数式编程1-函数式接口

1. java引入函数式接口定义的背景

 
  java是面向对象编程的语言,方法之间只能传递数据。为了使java更加强大,使其能够传递行为事件,java设计者们引入了函数式编程的概念。通过函数式接口可以使java程序很好的表达一种行为事件。
 

2. 何为函数式接口

 
  函数式接口:从概念上讲,只要接口中只有一个抽象方法的接口,都可以称为函数式接口。
 
  由于默认方法(java8之后,接口允许有默认实现方法)有一个实现,所以它们不是抽象的。如果一个接口声明了一个覆盖java.lang.Object的一个公共方法的抽象方法,那么这也不计入该接口的抽象方法计数,因为该接口的任何实现都将具有来自java.lang.Oobject或其他地方的实现。
 
  可以在函数式接口上标注@FunctionInterface注解,显示的表明该接口为一个函数式接口。如果满足函数式接口概念,不加注解也可以

3. 常见的4中函数式接口

接口名称 入参 返回
Consumer T
Supplier T
Function<T,R> T R
Predicate T Boolean

4. 函数式接口实例

  在java8之前,创建一个接口实例,需要实现该接口,或者通过匿名内部类的形式创建。
 
  在java8之后,可以通过如下的方式快速表达一个函数式接口实例。以Consumer、Supplier函数接口为例
  1. lambda表达式: Consumer<Integer> consumer = integer -> System.out.println(integer);
  2. 方法引用: Consumer<Integer> consumer1 = System.out::println;
  3. 构造方法引用: Supplier<String> supplier = String::new;

posted @ 2023-05-26 22:33  Java半路人生  阅读(74)  评论(0)    收藏  举报