jdk8新特性

jdk8新特性


lambda表达式

  1. 简介:lambda允许把函数作为一个方法的参数,一个lambda表达式包含用逗号分隔的参数列表、->符号、函数体三个部分。

     (String s)->System.out.println(value);
     s就是参数 System.out.println(value)就是函数体
    
  2. 说明:lambda表达式其实完成了实现接口并且实现接口里的方法,也可以认为lambda表达式代表一种动作,我们可以直接把
    这种特殊的动作进行传递。如果一个lambda表达式实现了接口里有且仅有的唯一抽象方法,那么对于这种接口就叫做函数式接口。

函数式接口

  1. 简介:在java中 使用@FunctionalInterface修饰的接口就叫函数式接口,或者可以说函数式接口是一个只有一个抽象方法的
    的普通接口,@FunctionalInterface可以起到校验的作用。

     例如
     @FunctionalInterface
     public interface TestFunction {
         void test();
         void test1();
     }
     这时编译器,会提示编译错误。 因为这不符合函数式接口的特征。这就是校验的作用。
    
  2. jdk中的函数式接口

接口描述
Supplier无参数,返回一个接口
Function接受一个输入参数,返回一个结果
Consumer接受一个输入参数,无返回结果
Predicate接受一个输入参数,返回一个布尔值结果

备注(如果前面加Bi表示接受2个参数,返回结果相同)

实例
() -> {return 0;},没有传入参数,有返回值   
(int i) -> {return 0;},传入一个参数,有返回值 
(int i) -> {System.out.println(i)},传入一个int类型的参数,但是没有返回值 
(int i, int j) -> {System.out.println(i)},传入两个int类型的参数,但是没有返回
  1. 接口的默认方法和静态方法
    1. 默认方法:在接口中用default修饰的方法称为默认方法 默认方法。 接口中的默认方法一定要有默认实现(方法体),接口实现者可以继承它,也可以覆盖它。
    2. 静态方法:在接口中用static修饰的方法称为静态方法 静态方法。

Optional

  1. 简介:optional主要用来解决空指针异常

  2. api

     创建Optional对象的几个方法: 
     	1. Optional.of(T value), 返回一个Optional对象,value不能为空,否则会出空指针异常 
     	2. Optional.ofNullable(T value), 返回一个Optional对象,value可以为空 
     	3. Optional.empty(),代表空
     其他API: 
     	1. optional.isPresent(),是否存在值(不为空) 
     	2. optional.ifPresent(Consumer<? super T> consumer), 如果存在值则执行consumer 
     	3. optional.get(),获取value 
     	4. optional.orElse(T other),如果没值则返回other 
     	5. optional.orElseGet(Supplier<? extends T> other),如果没值则执行other并返回 
     	6. optional.orElseThrow(Supplier<? extends X> exceptionSupplier),如果没值则执行exceptionSupplier, 并抛出异常
     高级API: 
     	1. optional.map(Function<? super T, ? extends U> mapper),映射,映射规则由function指定,返回映射值 的Optional,所以可以继续使用Optional的API。 
     	2. optional.flatMap(Function<? super T, Optional< U > > mapper),同map类似,区别在于map中获取的返 回值自动被Optional包装,flatMap中返回值保持不变,但入参必须是Optional类型。 
     	3. optional.filter(Predicate<? super T> predicate),过滤,按predicate指定的规则进行过滤,不符合规则则 返回empty,也可以继续使用Optional的API。
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值