Java函数式编程
函数式编程是种编程方式,它将电脑运算视为函数的计算。函数编程语言最重要的基础是λ演算(lambda calculus),而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。
- 在java中主要指的是有且只有一个需要实现方法的接口
-
@FunctionalInterface是函数式接口的标识
-
jdk1.8以后允许接口有默认实现
-
函数式接口可以使用λ表达式()-> { }
@FunctionalInterface public interface Interface1 { String format(int i); default int add (int x, int y) { return x + y; } }
-
常见函数式接口
public class Test {
public static void main(String[] args) {
// 断言函数接口 当满足时返回true
Predicate<Integer> predicate = i -> i > 10;
System.out.println(predicate.test(9)); // false
System.out.println(predicate.test(11)); // true
// 消费型接口没有返回值
Consumer<String> consumer = i -> System.out.println(i);
consumer.accept("hello word"); // 直接打印
// 生产型接口返回指定类型的数据
Supplier<String> supplier = () -> "add";
System.out.println(supplier.get()); // 返回add
// 类型转换 可以把字符串类型转换成整形
Function<String, Integer> function = i -> Integer.parseInt(i);
System.out.println(function.apply("123")); // 123
}
}