函数式接口和方法引用

佚名 / 2023-08-27 / 原文

函数式接口和方法引用

1.函数式接口概述

只有一个抽象方法(default不算)的接口称为函数式接口.通常有注解:@FunctionalInterface进行标识.

2.方法引用

只有在lambda表达式总发现方法体只有一行代码就可以简化写法;

例如: lambda的三层简化写法

        new ArrayList<String>().stream().map(new Function<String, Integer>() {
            @Override
            public Integer apply(String s) {
                return Integer.valueOf(s);
            }
        }).forEach(new Consumer<Integer>() {
            @Override
            public void accept(Integer i) {
                System.out.println(i);
            }
        });
        new ArrayList<String>().stream().map(s -> Integer.valueOf(s)).forEach(i -> System.out.println(i));
        new ArrayList<String>().stream().map(Integer::valueOf).forEach(System.out::println)
//上面三个等效

可以看到格式就是类::方法

  • 构造器方法也可以这么使用格式是类名::new