信创云平台如何推动企业数字化转型与创新发展
928
2022-11-21
Lambda函数式编程思想
一,函数式编程思想
1.1 概念
在数学中,函数就是一套计算方案。它重点放在 “ 拿什么东西就能做什么事情 ”。对于面向对象的编程思想而言,我们必须明确是哪一个对象来做这件事情的,而函数式编程思想的重点是 “ 做什么,不是以什么形式来做 。”
1.2 函数式编程思想和面向对象思想比较案例
new Thread(new Runnable(){ @Override public void run() { for(int i = 1;i <= 100; i++){ System.out.println(Thread.currentThread().getName() +"---"+i); } }}).start();new Thread(() -> { for(int i = 1;i <= 100; i++){ System.out.println(Thread.currentThread().getName() +"---"+i); }}).start();如果要使用实现 Runnable 接口的方式开启线程,我们必须创建出 Runnable 的实现类对象,并重写 run() 方法明确线程中要执行的任务。我们的重点是开启线程,让线程执行指定的任务,而不是创建 Runnable 的实现类对象也不是去重写 run() 方法。实际上,只有 run() 方法中的方法体才有重点。
1.3 Lambda表达式的语法
组成:参数列表箭头代码块格式:(参数列表)-> { 代码块 }格式说明:():表示接口中抽象方法的参数列表;方法没有参数的话就留空,有的话就跟着接口中的这个方法的参数列表来写。->:传递的意思,把参数传递给方法体{}:重写接口抽象方法的方法体Lambda表达式中可以省略的内容:参数列表中的类型如果参数只有一个,那么连 " () "也能省略,此时 " () " 省略情况下,类型一定不能写如果 " {} " 中只有一行代码,重写的方法没有返回值:可以省略 " {} " ,此时该语句的分号必须省略重写的方法有返回值:可以省略 " {} ",此时 " reuturn " 和 分号 必须省略Lambda 的使用前提:使用 Lambda 表达式必须要有接口,接口中有且只能有一个抽象方法,默认的方法、静态的方法、私有方法也可以包含。方法的参数必须是函数式接口,才能使用 Lambda 作为该接口的实例函数式接口:有且仅有一个抽象方法的接口,可以通过 @FunctionalInterface 注解来校验该接口是否的函数式接口
1.4 常见的函数式接口
1.4.1 Supplier
该接口中有一个无参的抽象方法:T get()它用来获取一个泛型参数指定的数据类型的对象
1.4.2 Predicate
该接口中有一个无参的抽象方法:boolean test(T t),两个默认方法:and() 、or()它用来判断是否满足条件
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~