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、线程任务、事件监听等 |
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


