java8新特性的作用-lambda

学习java8新特性的作用

给我们带来的好处,简化代码,提高效率

现在应该将关注点从"怎么做"到"做什么"的本质上,过程和形式并不重要

函数式编程思想作用

能够快速满足需求,达到目标

匿名内部类改造

作用:提高代码的可读性,可维护性,扩展性

直观体现:将匿名内部类改造成lambda表达式

策略设计模式

​ 直观体现:通过定义接口或者抽象类封装算法或者行为,在实现具体的策略类

Lambda表达式

使用地方及约束:

使用函数式接口定义匿名内部类使用

语法:

Runable r=() ->System.out.println(“product”);

():参数列表

->:箭头操作符

System.out.println(“product”);:方法体

函数式接口

定义:

如果这个接口是一个函数式接口,才能使用Lambda表达式

使用注解**@FunctionalInterface** 检查当前接口是否满足函数式接口的要求

//函数式接口,有且仅有一个抽象方法,保证方法的唯一
@FunctionalInterface  //检查当前接口是否满足函数式接口的要求
public interface MyPredicate {
    boolean test(Product product);
}
是否所有的接口类型作为参数都可以使用Lambda表达式

**解释:**不是的,只有接口中只有一个抽象方法的时候,Lambda才能进行猜测传递的任务实际是实现接口中唯一的抽象方法,该接口为"函数式接口"

Lanmda表达式的特征

1.参数类型可以不用写

2.一个参数无需圆括号,多个参数需要写圆括号

3.主体语句中只有一句不需要大括号,有多个语句就需要大括号

4.主体只有一句则省略return和大括号

常见的函数式接口
函数式接口参数类型返回类型说明
Consumer 消费型接口Tvoid对象有参(类型T)无返回
Supplier< T> 供给型接口voidT对象无参有返回(类型T)
Function<T,R> 函数型接口TR对象的类型为T,返回值类型R
Predicate 断言型接口Tboolean对象类型为T,返回值类型boolean
方法引用

语法分析

双冒号 ::为引用运算符

使用::代替参数和箭头,引用了out的方法,

**注意事项:**函数式接口中的方法结构和方法体调用方法的结构一致

在这里插入图片描述

函数式接口中的方法结构和方法体中调用的方法的结构一致

即返回值和形参列表相同

       Supplier<Double> supplier = new Supplier<>() {
       @Override
        public Double get() {
            // random() 和 get() 结构一致,即返回值和形参列表相同
            return Math.random();
        }
    };
方法引用的语法

1.对象的引用::实例方法名,使用的是Consumer接口

 Arrays.asList("a","b","c").forEach(System.out::println); 

2.类名::静态方法名,使用Supplier接口

Supplier<Double> suppp = Math::random;

3.类名::实例方法名

Function<Product,String> function3= Product::getName;

4.类名::new (构造器引用)

Supplier<Product> snew2= Product::new;

5.类型[] :: new (数组引用)

Function<Integer,String[]> fun2= String[]::new;
Lambda表达式延迟执行

作用:防止性能浪费,当满足条件的时候再进行执行里面的流程

接口中可以写的方法类型

1.默认的实例方法

  default void delete(){
        //通用方法
    };

2.默认的静态方法,使用类来调用

static void list(){

}

3.私有方法

private void get(){

}

注意事项:

​ 1.一个类不能同时实现两个接口,编译时会报错

​ 2.接口中的没有进行修饰的方法,实现类都必须全部实现

static void list(){

}

3.私有方法

private void get(){

}

注意事项:

​ 1.一个类不能同时实现两个接口,编译时会报错

​ 2.接口中的没有进行修饰的方法,实现类都必须全部实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值