首页 > 编程语言 > 详细

Java四大函数式接口

时间:2020-06-24 10:04:22      阅读:71      评论:0      收藏:0      [点我收藏+]

什么是函数式接口

  1. 只包含一个抽象方法的接口,成为函数式接口;

  2. 可以通过 Lambda 表达式来创建该接口的对象。(若 Lambda表达式爆出一个受检异常,那么该异常需要在目标接口的抽象方法上进行声明);

  3. 我们可以在任意函数式接口上使用 @FunctionalInterface 注解,这样可以检查它是否是一个函数式接口,同时 javadoc 也会包含一条声明,说明这个接口是一个函数式

Java四大函数式接口

技术分享图片

 

 

 


消费型接口

 // Consumner<T> 消费型接口
    @Test
    public void test1(){
        happy(1000,(m) -> {
            System.out.println("刚哥喜欢大保健,每次消费"+m+"元");
        });
    }
    public void happy(double money, Consumer<Double> consumer){
        consumer.accept(money);
    }

技术分享图片

 

 

 


供给型接口

   // Supplier<T> 供给型接口
    @Test
    public void test2() {
        List<Integer> numList = getNumList(10, () -> {
            return new Random().nextInt(10);
        });
        System.out.println(numList);
    }

    //需求:产生指定个数的整数,并放入集合中
    public List<Integer> getNumList(int num, Supplier<Integer> supplier) {
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < num; i++) {
            Integer integer = supplier.get();
            list.add(integer);
        }
        return list;
    } 

技术分享图片

 

 

 


函数型接口.

// 函数型接口
    @Test
    public void test3(){
        String handler = strHandler(" 无比巨帅的小飞仔 ", (m) -> {
            return m.trim().substring(1,5);
        });
        System.out.println(handler);

    }
    //需求 用于处理字符串
    public static String strHandler(String str, Function<String,String> function){
        return function.apply(str);
    } 

  技术分享图片


 

断言型接口

 // 断言型接口
    @Test
    public void test4() {
        List<String> list = Arrays.asList("Hello", "xuefei", "zhenhsuai");
        List<String> strList = filterStr(list, (m) -> m.length() > 5);
        System.out.println(strList);
    }

    // 需求:将满足条件的字符串,放入集合中去
    public List<String> filterStr(List<String> list, Predicate<String> predicate) {
        List<String> strList = new ArrayList<>();
        for (String s : list) {
            if (predicate.test(s))
                strList.add(s);
        }
        return strList;
    }

技术分享图片 


 

其他函数式接口

技术分享图片

 

Java四大函数式接口

原文:https://www.cnblogs.com/lililixuefei/p/13185879.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!