【JavaSE】函数式接口

简介: 【JavaSE】函数式接口

一、函数式接口概述

定义:有且只有一个抽象方法

注解:@FunctionalInterface

函数式接口作为参数:Lambda表达式作为参数传递

函数式接口作为返回值:Lambda表达式作为结果返回

二、Supplier接口

Supplier<T>:结果供应商

指定类型,就能get此类型的值

方法:T get()

public static void main(String[] args) {
   
    int i = doSupplier(()->123);
    System.out.println(i);
}

public static int doSupplier(Supplier<Integer> s) {
   
    return s.get() + 321;
}

三、Consumer接口

Consumer<T>:消费型接口

方法:
void accept(T t):执行操作
andThen(...):组合操作

public static void main(String[] args) {
   
        doConsumer("wmh",System.out::println);
}
public static void doConsumer(String name, Consumer<String> con){
   
    con.accept(name);
}

四、Predicate接口

Predicate <T>

方法:
boolean test(T t):对给定的参数进行判断(判断逻辑由Lambda表达式实现,返回布尔值
negate(): 返回一个逻辑的否定,对应逻辑非
and(Predicate other):返回一个组合判断,对应短路与
or(Predicate other):返回一个组合判断,对应短路或

五、Function接口

Function<T,R>

通常用于对参数进行处理,转换(处理逻辑由Lambda表达式实现),然后返回一个新的值

方法:
Rapply(T t):将此函数应用于给定的参数
default <V> Function andThen(Function after):返回一个组合函数,首先将该函数应用于输入,然后将after函数应用于结果

目录
相关文章
|
19小时前
|
Java 开发者
Java一分钟之-Lambda表达式与函数式接口
【5月更文挑战第12天】Java 8引入的Lambda表达式简化了函数式编程,与函数式接口结合,实现了代码高效编写。本文介绍了Lambda的基本语法,如参数列表、箭头符号和函数体,并展示了如何使用Lambda实现`Runnable`接口。函数式接口仅有一个抽象方法,可与Lambda搭配使用。`@FunctionalInterface`注解用于确保接口具有单一抽象方法。文章还讨论了常见的问题和易错点,如非函数式接口、类型冲突以及Lambda表达式的局部变量可见性,并提供了避免这些问题的策略。通过理解Lambda和函数式接口,开发者能提高代码可读性和效率。
38 4
|
19小时前
|
存储
JavaSE&泛型
JavaSE&泛型
|
19小时前
|
缓存 安全 Java
Java中函数式接口详解
Java 8引入函数式接口,支持函数式编程。这些接口有单一抽象方法,可与Lambda表达式结合,简化代码。常见函数式接口包括:`Function&lt;T, R&gt;`用于转换操作,`Predicate&lt;T&gt;`用于布尔判断,`Consumer&lt;T&gt;`用于消费输入,`Supplier&lt;T&gt;`用于无参生成结果。开发者也可自定义函数式接口。Lambda表达式使实现接口更简洁。注意异常处理和线程安全。函数式接口广泛应用于集合操作、并行编程和事件处理。提升代码可读性和效率,是现代Java开发的重要工具。
35 0
|
19小时前
|
Java 开发者
Java中的Lambda表达式与函数式接口
【2月更文挑战第3天】传统的面向对象编程语言在处理函数式编程方面存在一定的局限性,而Java 8 引入了Lambda 表达式和函数式接口的概念,极大地提升了语言的灵活性和表达能力。本文将介绍Lambda 表达式和函数式接口在Java 中的基本概念、用法以及与传统面向对象编程的区别,帮助读者更好地理解并应用这些新特性。
|
19小时前
|
Java
Dating Java8系列之Lambda表达式和函数式接口(下)
Dating Java8系列之Lambda表达式和函数式接口(下)
15 0
|
19小时前
|
存储 Java
Dating Java8系列之Lambda表达式和函数式接口(上)
Dating Java8系列之Lambda表达式和函数式接口(上)
25 0
|
10月前
|
Java
【Java】函数式接口
【Java】函数式接口
131 0
|
20小时前
|
存储 安全 Java
JavaSE基础篇:泛型说明
JavaSE基础篇:泛型说明
|
7月前
|
存储 安全 Java
Javase ------> 泛型
Javase ------> 泛型
30 0
|
8月前
|
并行计算 Java 编译器
【javaSE】 Lambda表达式与Lambda表达式的使用
【javaSE】 Lambda表达式与Lambda表达式的使用