当前位置: 首页 > wzjs >正文

网站开发常用语言的优劣势微网站建设 上海

网站开发常用语言的优劣势,微网站建设 上海,网页游戏软件制作专业,温州专业网站制作公司目录 一、面向对象的处理方法 二、函数式编程的处理方法 先使用匿名内部类: lambda改造: lambda改造规则 示例: 三、补充:函数式接口 大家好,我是jstart千语。今天总结一下lambda表达式。lambda表达式在后面的s…

      

目录

一、面向对象的处理方法

二、函数式编程的处理方法

先使用匿名内部类:

lambda改造:

lambda改造规则

示例:

三、补充:函数式接口


        大家好,我是jstart千语。今天总结一下lambda表达式。lambda表达式在后面的streamAPI和mybatis-plus都用得非常多。是很有必要学习的。

        说白了,lambda表达式就是简化函数式接口匿名内部类的书写。

        什么是函数式接口?就是只有一个抽象方法的接口

        什么是匿名内部类?就是在实参中书写内部类,传递给方法的形参。

 lambda表达式是函数式编程的产物,与我们面向对象编程不同。所以他们的实现方式也会不同。我会从面向对象的方式讲起。

Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码,它可以写出更简洁、更灵活的代码,作为为一种更紧凑的代码风格,使 Java 语言表达能力得到了提升。
 


一、面向对象的处理方法

对于使用不同的工具来发送消息的功能,如果是使用面向对象的思想,需要先定义一个接口,然后让不同的工具来实现这个接口,并重写它的抽象方法,例如:

接口:

public interface sendMessage {void send();
}

 Email实现类:

public class Email implements sendMessage {@Overridepublic void send() {System.out.println("use email send message");}
}

phone实现类:

public class phone implements sendMessage {@Overridepublic void send() {System.out.println("use phone send message");}
}

具体运行的代码:

public class Main {public static void main(String[] args) {sendMessage email = new Email();//创建email的实例email.send(); //调用实现类的方法}}

输出:


总结:

        显然,如果使用面向对象的思想,要先自己写实现类,然后重写方法,然后创建对象,最好再调用方法。相对来说比较麻烦,特别是某种情况只用一次的时候。



二、函数式编程的处理方法

这是一种简化代码的一种书写风格,可以直接将接口的具体实现写在lambda表达式里,不需要再进行实例化接口、创建对象、调用方法。

比如基于上述的例子,我再补充一个使用WX来发送消息的实现:

先使用匿名内部类:

public static void main(String[] args) {message(new SendMessage() {@Overridepublic void send() {System.out.println("use wx send message");}});}public static void message(SendMessage sendMessage) {sendMessage.send();}

lambda改造:

public static void main(String[] args) {message(() -> {System.out.println("use wx send message");});}public static void message(SendMessage sendMessage) {sendMessage.send();}

lambda改造规则

改造规则遵循:可推导可省略的思想。也就是说如果可以由java推导出来的就可以省略。

具体如下:

  • 从接口名到方法名都可以省略,也就是从new...到方法名都可以省略,参数和方法体之间用 -> 连接。
  • 参数类型可以省略不写
  • 如果只有一个参数,()可以省略;如果参数不止一个,那么()就不能省略,只能省略参数类型
  • 如果方法体只有一行,{}可以省略、return可以省略,方法体内的 ;可以省略

示例:

    public static void main(String[] args) {String result = message("李雷","hello",new SendMessage(){@Overridepublic String send(String user, String message) {System.out.println("send " + message + " to " + user);return "success";}});System.out.println("result: " + result);}public static String message(String user,String message,SendMessage sendMessage) {return sendMessage.send(user, message);}

lambda表达式:

    public static void main(String[] args) {String result = message("李雷","hello",(user, message) -> {System.out.println("send " + message + " to " + user);return "success";});System.out.println("result: " + result);}public static String message(String user,String message,SendMessage sendMessage) {return sendMessage.send(user, message);}

输出:



三、补充:函数式接口

函数式接口就是指只有一个抽象方法的接口,可以使用@FunctionalInterface来标记。

  1. 不加这个注解,只要接口里面只有一个方法,那这个接口也是函数式接口
  2. 加了这个注解,如果接口里面不止一个抽象方法,会报编译错误。
  3. 实际使用中,还是添加这个注解,因为这样可以做到显式地声明,更清楚地知道这个接口的使用意图。


文章转载自:

http://obWZ0vms.gmmxh.cn
http://4L998S78.gmmxh.cn
http://uh7KVdb1.gmmxh.cn
http://QuKN5gVW.gmmxh.cn
http://7rAjPuLa.gmmxh.cn
http://0yBpIq0N.gmmxh.cn
http://MzOaJUxf.gmmxh.cn
http://hKOFSmOQ.gmmxh.cn
http://J7QPhaXg.gmmxh.cn
http://U7alH2Dk.gmmxh.cn
http://GGnPlBLG.gmmxh.cn
http://wETHxCPR.gmmxh.cn
http://EuSGausT.gmmxh.cn
http://3vk10TiD.gmmxh.cn
http://IOrvh7XC.gmmxh.cn
http://k2pGZrAu.gmmxh.cn
http://DARiiTO6.gmmxh.cn
http://0rUe6JXa.gmmxh.cn
http://DLaOi6FR.gmmxh.cn
http://aNOrcbN4.gmmxh.cn
http://45xwojd3.gmmxh.cn
http://KZ1eE5Hm.gmmxh.cn
http://en7QW9e1.gmmxh.cn
http://mPaVEtA9.gmmxh.cn
http://iGswi7sL.gmmxh.cn
http://BfEXDJou.gmmxh.cn
http://D90eRrip.gmmxh.cn
http://K0Hbs3DY.gmmxh.cn
http://Ewpz1fqT.gmmxh.cn
http://vWAUNdPK.gmmxh.cn
http://www.dtcms.com/wzjs/764800.html

相关文章:

  • 商贸有限公司网站建设免费logo设计网站推荐
  • 网站怎么推广运营多用户分布式网站开发
  • 怎样下载网站模板做网站和管理系统
  • 网站关键词之间廊坊做网站价格
  • 苏州建设监理有限公司网站成都今天重大新闻事件
  • 抚州网站网站建设cms代码做网站
  • 简述网站制作的一般流程网站播放大视频如何做
  • 中小企业网站的主流类型是wordpress 插件大全
  • 网站的制作方法网站价格网页制作
  • 安徽区块链虚拟币网站开发价格商业设计网站
  • 购彩网站建设互动网站案例
  • 防止访问网站文件夹太原定制网站制作流程
  • 国内十大网站建设公司排名郑州网站建站网站怎么样
  • 电脑怎做单页网站qq网页版登录官网登录入口网站
  • 西安建设银行工作招聘网站seo优秀网站
  • 网站服务器结构图华东建设安装有限公司网站
  • 企业网站托管电话安徽移动互联网开发
  • 网站开发技术要学什么软件福州做网站软件
  • 做网站的相关术语微信服务号怎么做商城
  • 淄博网站设计小程序后台管理系统
  • 模仿ios系统的html网站网站 head关键字 密度 多少字
  • 北京做一个网站多少钱惠州网站建设怎么样
  • 西安企业模板网站建设济南如何挑选网站建设公司
  • 设计网站需求上海企业在线登记
  • 如何在建设银行网站申购纪念币阿里指数网站
  • 重庆住建网站企业网站推广在哪里办
  • 企业官网搭建多少钱seo实战培训课程
  • 外贸网站源码去一品资源网页制作框架代码
  • 专业网站建设价位杭州网页制作设计营销
  • 跨境电商网站排行榜移动网站建设