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表达式相关推荐

  1. java lamda表达式

    lamda的语法: 以逗号分隔,以()关闭的形参:(o1, o2) 箭头标记:-> 主体部分则是一个单表达式或者声明代码块.如下是单表达式形式:Integer.compare(m.getWeig ...

  2. Java lamda表达式快速分组

    public class ProductDto {private long month;private String cate;private double count;} 分组 Map<Str ...

  3. java lamda表达式去重

    /***** 去重* @param virtualFleetSettlementListPre* @param virtualFleetSettlementListAll* @return*/publ ...

  4. java构造函数传参_java 构造函数 , 参数传递 , lamda表达式

    1.  java 子类中必须显式或者隐式的调用父类的构造方法,原因是双亲委派机制.java 在创建一个对象是,会在构造方法中依次向上调用父类的构造方法. 为了找到父类的构造方法,所以子类应显式或者隐式 ...

  5. java工作笔记017---java8新特性_使用lamda表达式进行List分组_排序_去重_随时更新

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 这个电视购物项目后台采用java1.8编写,有些业务复杂的地方,使用lamda表达式可以简化开发 ...

  6. Java回调的四种写法(反射、直接调用、接口调用、Lamda表达式)

    1. 引言 在计算机程序设计中,回调函数,简称回调(Callback),是指通过函数参数传递到其他代码的,某一块可执行代码的引用.这一设计允许了底层代码调用在高层定义的子程序. 以上是维基百科对&qu ...

  7. java之Lamda表达式的介绍

    Lamda表达式: λ希腊字母表中排序第11位的字母,英文名称为Lambda,它Lambda表达式是Java SE 8中一个重要的新特性,允许通过表达式来代替功能接口,它与其他方法相同,提供了一个正常 ...

  8. 一个小案例精通lamda表达式与函数式接口

    前言:只有基础(多态.匿名接口实现类)足够扎实才能更好的学习花拳绣腿(lamda表达式),Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性.Lambda 允许把函数作为一 ...

  9. java1.8 lamda表达式

    1.方便匿名内部类的使用 直接使用lamda表达式编写接口的实现 参数为接口抽象方法的入参 后面接着方法的实现 然后就可以作为该接口的对象使用了 2.lamada表达式语法 (parameters) ...

最新文章

  1. 教遗传算法人工智能玩超级马里奥大陆
  2. iphone屏蔽系统更新_iPhone 屏蔽系统更新教程,支持 iOS13 / iOS12 系统
  3. linux 网卡绑定updelay,Linux 配置双网卡绑定实现负载均衡
  4. idea提高调试超时_如何提高您的调试技能
  5. 敏捷开发系列学习总结(6)——你用什么工具管理项目
  6. 纯干货 | UI界面中按钮设计汉堡按钮\菜单
  7. matlab画图基本命令
  8. 工程实践:基于C/C++的学生账目管理系统(个人账本管理系统)
  9. 调用阿里API实现图片验证码识别
  10. CAN负载率为什么不能太高?
  11. 2013中国企业500强榜单出炉
  12. 所有人都能看懂的华为交换机vlan配置
  13. SpringBoot集成Redis代码详解,收藏起来
  14. 数据库课程设计-----------学生选课管理系统的设计
  15. tp6中的助手函数是什么意思?
  16. Vue笔记_01双向数据绑定原理
  17. 英语中12个月名称的由来
  18. 产品研发过程常见问题3:跨部门协作困难
  19. 《梦幻模拟战》漏洞挖掘全过程
  20. Android部分源码资源共享(视屏转GIF图片工具、仿抖音、仿朋友圈、仿红包、饼状图、引导图,图灵源码等)

热门文章

  1. vim插件自动补齐_Vim7.3.3使用Autocomplpop自动补全插件报错解决办法
  2. python 画云图_【词云图】如何用python的第三方库jieba和wordcloud画词云图
  3. java责任链模式的三种方式,分享一点面试小经验
  4. 【Network Security!】密码攻击的原理和方法
  5. 算法训练 连续正整数的和 (枚举)
  6. electron 两个窗口如何通信_关于 Electron 进程间通信的一个小小实践
  7. 树的高度从零还是一开始数_数据结构与算法之1——树与二叉树
  8. LINUX下UDP实现消息镜像通信,linux环境下基于udp socket简单聊天通信
  9. 网络推广产品浅析网站想要保持稳定的SEO排名和流量需要做什么?
  10. 企业选择网站建设能够对自身带来哪些作用?