Java --Lamda表达式
Lamda:属于函数式编程的概念;
interface IMessage {public void print() ; } public class TestDemo {public static void main(String [] args) {fun(new IMessage() {public void print() {System.out.println("Hello,World!") ;}}) ;}public static void fun(IMessage msg) {msg.print() ;} }
上例代码为 匿名内部类 的运用;然而实际上在整个代码中,最终需要的只有一个输出操作,但由于Java的开发结构要求,不得不在核心的输出语句上嵌套更多内容;为了简化类似上例代码,JDK1.8引用了 函数式的编程 可以使用Lamda表达式。
interface IMessage {public void print() ; } public class TestDemo {public static void main(String [] args) {fun( ()->System.out.println("Hello,World!") ) ; // Lamda表达式// }public static void fun(IMessage msg) {msg.print() ;} }
在整个代码的操作中,匿名内部类只进行一行语句的输出,所以此时使用了Lamda表达式实现需求。
对于Lamda语法主要有三种形式:
1 — (参数) -> 单行语句
2 — (参数) -> {多行语句}
3 — (参数) -> 表达式
观察代码:
interface IMessage {public void print( String str ) ; } public class TestDemo {public static void main(String [] args) {// 首先要定义此处表达式需要接收的变量fun( (s)->System.out.println(s) ) ; // Lamda 有参语法// }public static void fun(IMessage msg) {msg.print("Hello World!") ; //设置参数的内容 } }
interface IMessage {public void print( String str ) ; } public class TestDemo {public static void main(String [] args) {// 定义Lamda有参多行语法fun( (s)->{s = s.toUpperCase() ;System.out.println(s) ;} ) ; }public static void fun(IMessage msg) {msg.print("Hello World!") ; //设置参数的内容 } }
interface IMessage {public void add( int x , int y ) ; } public class TestDemo {public static void main(String [] args) {// 定义Lamda有参表达式语法fun( (s1,s2) -> { return s1+s2 ;} ) ; }public static void fun(IMessage msg) {System.out.println(msg.add(10,20)) ;} }
————————————
总结:
利用Lamda表达式最终解决的问题是:避免了匿名内部类内定义过多无用的操作。
~~~~~
转载于:https://www.cnblogs.com/wangyuyang1016/p/10924637.html
Java --Lamda表达式相关推荐
- java lamda表达式
lamda的语法: 以逗号分隔,以()关闭的形参:(o1, o2) 箭头标记:-> 主体部分则是一个单表达式或者声明代码块.如下是单表达式形式:Integer.compare(m.getWeig ...
- Java lamda表达式快速分组
public class ProductDto {private long month;private String cate;private double count;} 分组 Map<Str ...
- java lamda表达式去重
/***** 去重* @param virtualFleetSettlementListPre* @param virtualFleetSettlementListAll* @return*/publ ...
- java构造函数传参_java 构造函数 , 参数传递 , lamda表达式
1. java 子类中必须显式或者隐式的调用父类的构造方法,原因是双亲委派机制.java 在创建一个对象是,会在构造方法中依次向上调用父类的构造方法. 为了找到父类的构造方法,所以子类应显式或者隐式 ...
- java工作笔记017---java8新特性_使用lamda表达式进行List分组_排序_去重_随时更新
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 这个电视购物项目后台采用java1.8编写,有些业务复杂的地方,使用lamda表达式可以简化开发 ...
- Java回调的四种写法(反射、直接调用、接口调用、Lamda表达式)
1. 引言 在计算机程序设计中,回调函数,简称回调(Callback),是指通过函数参数传递到其他代码的,某一块可执行代码的引用.这一设计允许了底层代码调用在高层定义的子程序. 以上是维基百科对&qu ...
- java之Lamda表达式的介绍
Lamda表达式: λ希腊字母表中排序第11位的字母,英文名称为Lambda,它Lambda表达式是Java SE 8中一个重要的新特性,允许通过表达式来代替功能接口,它与其他方法相同,提供了一个正常 ...
- 一个小案例精通lamda表达式与函数式接口
前言:只有基础(多态.匿名接口实现类)足够扎实才能更好的学习花拳绣腿(lamda表达式),Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性.Lambda 允许把函数作为一 ...
- java1.8 lamda表达式
1.方便匿名内部类的使用 直接使用lamda表达式编写接口的实现 参数为接口抽象方法的入参 后面接着方法的实现 然后就可以作为该接口的对象使用了 2.lamada表达式语法 (parameters) ...
最新文章
- 教遗传算法人工智能玩超级马里奥大陆
- iphone屏蔽系统更新_iPhone 屏蔽系统更新教程,支持 iOS13 / iOS12 系统
- linux 网卡绑定updelay,Linux 配置双网卡绑定实现负载均衡
- idea提高调试超时_如何提高您的调试技能
- 敏捷开发系列学习总结(6)——你用什么工具管理项目
- 纯干货 | UI界面中按钮设计汉堡按钮\菜单
- matlab画图基本命令
- 工程实践:基于C/C++的学生账目管理系统(个人账本管理系统)
- 调用阿里API实现图片验证码识别
- CAN负载率为什么不能太高?
- 2013中国企业500强榜单出炉
- 所有人都能看懂的华为交换机vlan配置
- SpringBoot集成Redis代码详解,收藏起来
- 数据库课程设计-----------学生选课管理系统的设计
- tp6中的助手函数是什么意思?
- Vue笔记_01双向数据绑定原理
- 英语中12个月名称的由来
- 产品研发过程常见问题3:跨部门协作困难
- 《梦幻模拟战》漏洞挖掘全过程
- Android部分源码资源共享(视屏转GIF图片工具、仿抖音、仿朋友圈、仿红包、饼状图、引导图,图灵源码等)
热门文章
- vim插件自动补齐_Vim7.3.3使用Autocomplpop自动补全插件报错解决办法
- python 画云图_【词云图】如何用python的第三方库jieba和wordcloud画词云图
- java责任链模式的三种方式,分享一点面试小经验
- 【Network Security!】密码攻击的原理和方法
- 算法训练 连续正整数的和 (枚举)
- electron 两个窗口如何通信_关于 Electron 进程间通信的一个小小实践
- 树的高度从零还是一开始数_数据结构与算法之1——树与二叉树
- LINUX下UDP实现消息镜像通信,linux环境下基于udp socket简单聊天通信
- 网络推广产品浅析网站想要保持稳定的SEO排名和流量需要做什么?
- 企业选择网站建设能够对自身带来哪些作用?