Java 函数式编程:内置函数式接口、Optional 与流的使用
1. 内置函数式接口的使用
在 Java 编程中,内置函数式接口的正确使用至关重要。例如以下代码:
System.out.println(b1.apply("baby ", "chick")); // baby chick
System.out.println(b2.apply("baby ", "chick")); // baby chick
这段代码与 BiFunction 示例的功能相同,但代码更加简洁,体现了使用正确函数式接口的重要性,只需指定一个泛型类型而非三个。
1.1 检查函数式接口
要熟练掌握每个函数式接口的参数数量、类型、返回值和方法名。以下是几个练习场景,思考应该使用哪种函数式接口:
- 场景一 :不接受任何参数,返回一个 String。
- 场景二 :接受一个 String 参数,返回一个 Boolean。
- 场景三 :接受两个 Integer 参数,返回一个 Integer。
答案如下:
- 场景一是 Supplier,因为它生成一个对象且不接受参数。
- 场景二是 Function,它接受一个参数并返回另一种类型。这里要注意,Predicate 返回的是 boolean 基本类型而非 Boolean 对象。
- 场景三可以是 BinaryOperator 或 BiFunctio