zoukankan      html  css  js  c++  java
  • java内置的四大函数式接口

    一、Consumer:消费型接口(void accept(T t))

    举一个例子

    public class LambdaTest {
        @Test
        public void test() {
            happyTime(500, new Consumer<Double>() {
                @Override
                public void accept(Double aDouble) {
                    System.out.println("快乐的时光总是短暂!");
                }
            });
        }
    
        public void happyTime(double money, Consumer<Double> con){
            con.accept(money);
        }
    }
    // 定义了一个happyTime方法,该方法接收一个函数式接口(只含有一个抽象方法的接口,这里就是accept)
    // java8以前我们用匿名内部类
    
    public class LambdaTest {
        @Test
        public void test() {
            happyTime(500, money -> System.out.println("快乐的时光总是短暂"));
        }
    
        public void happyTime(double money, Consumer<Double> con){
            con.accept(money);
        }
    }
    // 这里采用lambda的写法, 首先要明白,happyTime的第二个参数,是一个函数式接口,实际在传入的时候要传入该接口的实现类的对象,这里采用lambda表示式实现
    //为何在happyTime中要调accept()方法?
    // 在调用happyTime()方法的时候,执行到con.accept(money);这一步
    // 其实就是该接口实现类重写了该方法,然后调该实现类对象的方法即可
    // 结合两种写法:可以看到也就是执行System.out.println("快乐的时光总是短暂!");这一句
    //这一句就是接口实现类的重写accept方法的方法体
    
    二、其余三大内置函数接口,及衍生接口与这差不多,不再说了!
    你所看得到的天才不过是在你看不到的时候还在努力罢了!
  • 相关阅读:
    浅谈设计和编码
    谈谈分工
    我们需要专职的QA吗?
    几句禅语的解释
    理想的程序员
    表连接
    关于集群和分布式的好文
    [kuangbin带你飞]专题十六 KMP & 扩展KMP & ManacherC
    [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher B
    [kuangbin带你飞]专题十六 KMP & 扩展KMP & Manacher A
  • 原文地址:https://www.cnblogs.com/heliusKing/p/10982579.html
Copyright © 2011-2022 走看看