JAVA8内置函数式接口


Lambda表达式与函数式接口的关系:

Lambda是函数式接口实现的快捷方式,它相当于函数式接口实现的实例,因为在方法中可以使用Object作为参数,所以把Lambda表达式作为方法参数也不是不可以。

函数式接口只有一个抽象方法,并且没有重写Object类中的方法(public方法除外),可以有默认方法和静态方法。

自定义函数式接口一般用注解 @Functionallnterface标注

在使用Lambda表达式作为参数的时候必须使用函数式接口来接收参数,Java8已经定义好了一些内置的函数式接口,可以解决开发过程中绝大部分为题,小部分特殊的问题需要自定义函数式接口。

例子:过滤集合中大于100的数字

public List<Integer> filterInt(List<Integer> list, Predicate<Integer> pre) {
    List<Integer> l = new ArrayList<>();
    for (Integer integer : list) {
        if (pre.test(integer)) {
            l.add(integer);
        }
    }
    return l;
}
@Test
public void test4 () {
    List<Integer> l = new ArrayList<>();
    l.add(102);
    l.add(172);
    l.add(13);
    l.add(82);
    l.add(109);
    List<Integer> list = filterInt(l, x -> (x > 100));
    for (Integer integer : list) {
        System.out.println(integer);
    }
}

更多接口详见:Java 8函数式接口


文章作者: Cody_
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Cody_ !
评论
 上一篇
RabbitMQ学习(二) RabbitMQ学习(二)
在之前的RabbitMQ中,讲了四种交换机的规则和用法,现在我们来说说RabbitMQ中的消息回调,也就是消息确认。 消息回调只需要实现回调配置以及回调函数即可 首先需要在配置文件中添加消息回调的配置项 # 消息确认配置项 # 确认消
2019-11-07
下一篇 
SpringBoot之请求参数详解 SpringBoot之请求参数详解
SpringBoot获取参数的几种方式 直接把表单参数写在Controller对应的方法的形参中 // 适用于get方式提交,不适用于post方式提交 @RequestMapping("/addUser1") public String a
2019-10-20
  目录