Function接口用于接收一个参数并返回结果,其apply方法执行函数逻辑,andThen与compose支持函数组合,常与Stream API结合实现数据转换。

在Java中,Function 是一个函数式接口,位于 java.util.function 包下,用于表示一个接受一个参数并返回结果的函数。它最常用于Lambda表达式和方法引用,是函数式编程的核心组件之一。
Function<T, R> 接收一个类型为 T 的参数,返回一个类型为 R 的结果。它有一个抽象方法:
apply(T t): 执行函数逻辑,传入 T 类型参数,返回 R 类型结果。示例:将字符串转换为大写
Function<String, String> toUpperCase = str -> str.toUpperCase(); String result = toUpperCase.apply("hello"); // 输出 "HELLO"Function 接口还提供了 andThen 和 compose 方法,支持函数组合。
立即学习“Java免费学习笔记(深入)”;
示例:组合两个函数
Function<String, Integer> stringToInt = s -> s.length(); Function<Integer, Integer> addTen = x -> x + 10;// 使用 andThen:先求长度,再加上10
Function<String, Integer> lengthPlusTen = stringToInt.andThen(addTen);
int result1 = lengthPlusTen.apply("hello"); // 5 + 10 = 15
// 使用 compose:先加10,再求长度(注意顺序不同)
Function<String, Integer> composed = addTen.compose(stringToInt);
int result2 = composed.apply("hi"); // 长度是2,2+10=12
Function 常用于集合处理、数据转换等场景,配合 Stream API 效果更佳。
示例:将用户列表的名字提取出来
List<User> users = Arrays.asList(new User("Alice"), new User("Bob")); List<String> names = users.stream() .map(user -> user.getName()) // map 接收 Function .toList();也可以预先定义可复用的函数:
Function<User, String> getName = User::getName; String name = getName.apply(new User("Charlie")); // 返回 "Charlie"基本上就这些。掌握 apply、andThen、compose 以及与 Stream 的结合,就能高效使用 Function 接口完成常见数据转换任务。不复杂但容易忽略细节,比如类型匹配和执行顺序。
以上就是在Java中如何使用Function函数接口的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号