【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函数应用于结果

目录
相关文章
|
6月前
|
Java 开发者
Java一分钟之-Lambda表达式与函数式接口
【5月更文挑战第12天】Java 8引入的Lambda表达式简化了函数式编程,与函数式接口结合,实现了代码高效编写。本文介绍了Lambda的基本语法,如参数列表、箭头符号和函数体,并展示了如何使用Lambda实现`Runnable`接口。函数式接口仅有一个抽象方法,可与Lambda搭配使用。`@FunctionalInterface`注解用于确保接口具有单一抽象方法。文章还讨论了常见的问题和易错点,如非函数式接口、类型冲突以及Lambda表达式的局部变量可见性,并提供了避免这些问题的策略。通过理解Lambda和函数式接口,开发者能提高代码可读性和效率。
72 4
|
3月前
|
Java 编译器 开发者
Java中的Lambda表达式与函数式接口
【8月更文挑战第31天】本文将深入探讨Java 8中引入的Lambda表达式和函数式接口,它们如何改变我们编写代码的方式。通过简化集合操作、事件处理等示例,我们将看到这些特性如何提升代码可读性、减少冗余,并提高开发效率。准备好一起探索这个让Java编程更加简洁强大的新世界吧!
|
3月前
|
Java API 开发者
探索Java中的Lambda表达式和函数式接口
【8月更文挑战第8天】 在Java 8中引入的Lambda表达式,不仅简化了代码编写,也提高了程序的可读性和性能。本文将深入探讨Lambda表达式的工作原理以及如何通过函数式接口来实现更简洁、高效的编程模式。
27 2
|
5月前
|
Java API 数据处理
Java中的Lambda表达式和函数式接口
【6月更文挑战第29天】在Java的世界里,Lambda表达式的引入标志着编程范式的一次革新。它不仅简化了代码,还提高了开发效率。本文将通过探索Lambda表达式的本质、优势以及如何与函数式接口协同工作,带领读者理解这一特性的强大之处。我们将从基础概念出发,逐步深入到实际应用,揭示Lambda表达式如何让Java代码更加简洁、灵活。
35 3
|
6月前
|
存储
JavaSE&泛型
JavaSE&泛型
21 1
|
6月前
|
缓存 安全 Java
Java中函数式接口详解
Java 8引入函数式接口,支持函数式编程。这些接口有单一抽象方法,可与Lambda表达式结合,简化代码。常见函数式接口包括:`Function&lt;T, R&gt;`用于转换操作,`Predicate&lt;T&gt;`用于布尔判断,`Consumer&lt;T&gt;`用于消费输入,`Supplier&lt;T&gt;`用于无参生成结果。开发者也可自定义函数式接口。Lambda表达式使实现接口更简洁。注意异常处理和线程安全。函数式接口广泛应用于集合操作、并行编程和事件处理。提升代码可读性和效率,是现代Java开发的重要工具。
81 0
|
Java 编译器
【JavaSE】抽象类
【JavaSE】抽象类
【JavaSE】抽象类
|
Java
【Java】函数式接口
【Java】函数式接口
145 0
|
6月前
|
存储 Java
Dating Java8系列之Lambda表达式和函数式接口(上)
Dating Java8系列之Lambda表达式和函数式接口(上)
43 0
|
6月前
|
Java
Dating Java8系列之Lambda表达式和函数式接口(下)
Dating Java8系列之Lambda表达式和函数式接口(下)
37 0