函数式接口
众所周知,Java8提供了很多新的特性,Lambda表达式,函数式接口,Optional,新的日期类api。今天简单聊一下Stream的前世今生。Lambda表达式我们现在已经用的很多了,而函数式接口则是为了支持Lambda表达式,Java8提供了很多内置的函数式接口,如Runnable,Comparator等是从原有的API升级来的,而有些是Java8新增的,如Consumer等。@FunctionalInterfacepublic interface Runnable { public abstract void run();}1234类上有注解@FunctionalInterface就可以认为这是一个函数式接口,可以用在Lambda表达式中。Lambda表达式极大的简化了我们的编程// jdk1.8之前new Thread(new Runnable() { @Override public void run() { System.out.println(“yes”); }}).start();// jdk1.8及以后new Thread(() -> System.out.println(“yes”)).start();12345678910为了方便我们使用Lambda表达式,Java8提供了一些内置的函数式接口函数式接口 方法 用途Consumer 消费型接口 void accept(T t) 输入参数为T,没有返回Supplier 供给型接口 T get() 返回RFunction<T, R> 函数型接口 R apply(T t) 输入参数为T,返回为RPredicate 判断型接口 boolean test(T t) 对象是否满足条件,true为满足,false为不满足
Stream
最新推荐文章于 2023-09-06 10:41:16 发布