java之函数式接口简介说明
下文笔者讲述java函数式接口的简介说明,如下所示
函数式接口简介
函数式接口(Functional Interface) 是指只包含一个抽象方法的接口 它可以被隐式转换为一个Lambda表达式、方法引用或构造器引用 是Java支持函数式编程的核心机制之一
函数式接口基本特征
-仅含一个抽象方法 (可有多个默认方法或静态方法) -可使用`@FunctionalInterface`注解 进行标记 例: @FunctionalInterface public interface MyFunctionalInterface { void doSomething(); // 唯一抽象方法 default void defaultMethod() { // 默认方法不影响函数式接口性质 } }
常见内置函数式接口(来自`java.util.function`包)
接口名 | 抽象方法 | 用途示例 |
`Function<T, R>` | `R apply(T t)` | 接收一个输入, 返回一个结果(如:转换操作) |
`Consumer<T>` | `void accept(T t)` | 消费一个输入, 无返回值(如:打印、保存) |
`Supplier<T>` | `T get()` | 无输入 提供一个结果(如:生成数据) |
`Predicate<T>` | `boolean test(T t)` | 接收一个输入, 返回布尔值(如:条件判断) |
`Runnable` | `void run()` | 无参数无返回值(用于线程任务) |
`BiFunction<T, U, R>` | `R apply(T t, U u)` | 接收两个参数, 返回一个结果 |
函数式接口的使用方式
1.Lambda表达式 //使用 Lambda 实现 Runnable 函数式接口 Thread thread = new Thread(() -> System.out.println("Running in thread")); thread.start(); 2.方法引用 list<String> list = Arrays.asList("a", "b", "c"); list.forEach(System.out::println); // 方法引用 3.构造器引用 Supplier<List<String>> listCreator = ArrayList::new; List<String> newList = listCreator.get(); 例 @FunctionalInterface interface MathOperation { int operate(int a, int b); } public class Main { public static void main(String[] args) { MathOperation add = (a, b) -> a + b; System.out.println(add.operate(2, 3)); // 输出 5 } }
函数式接口的特点
特性 | 描述 |
功能 | 支持将行为作为参数传递(函数式编程) |
关键点 | 只能有一个抽象方法 |
常用包 | `java.util.function` |
常见使用场景 | Stream API、线程任务、事件监听等 |
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。