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表达式最终解决的问题是:避免了匿名内部类内定义过多无用的操作。

~~~~~

Java --Lamda表达式的更多相关文章

  1. java中lamda表达式的应用

    lamda表达式主要是为了解决匿名内部类的繁琐过程 范例:简单的lamda表达式 此处使用匿名内部类 package com.java.demo; interface IMessage{ public ...

  2. java的lamda表达式

    Java8才支持lamda表达式  lamda是一中函数式编程语言 通过实现模式是匿名内部类 java使用内部类实现接口 首先定义一个接口 @FunctionalInterfaceinterface ...

  3. Java使用lamda表达式简化代码

    代码,自然写的越简洁越好啦,写的人舒服,看的人也舒服,一切为了高效. 要把有限的时间花到其它有意思的事情上去. 目的 学习简化代码的思路,使用jdk8新特性lamada表达式. 使用 某接口,只有一个 ...

  4. 第六章 接口,lamda表达式与内部类

    接口 接口可以包含常量, 且不需要publish static final修饰, 接口的域会自动添加该修饰符. Java建议不要写多余的代码,因此省略修饰符更简洁. 全部都是常量的接口背离了接口的初衷 ...

  5. jdk8系列一、jdk8 Lamda表达式语法、接口的默认方法和静态方法、supplier用法

    一.简介 毫无疑问,Java 8是Java自Java 5(发布于2004年)之后的最重要的版本.这个版本包含语言.编译器.库.工具和JVM等方面的十多个新特性. 在本文中我们将学习这些新特性,并用实际 ...

  6. JAVA8新特性——Lamda表达式

    JAVA9都要出来了,JAVA8新特性都没搞清楚,是不是有点掉队哦~ Lamda表达式,读作λ表达式,它实质属于函数式编程的概念,要理解函数式编程的产生目的,就要先理解匿名内部类. 先来看看传统的匿名 ...

  7. java8-详解Lamda表达式

    一回顾与说明     通过之前发布的"Java8Lamda和Stream原理引入"一文章中你已经了解了为什么会有Lamda表达式的由来,Lamda表达式的基本语法等:Lamda表达 ...

  8. 29 匿名内部类、函数型接口、lamda表达式的引入

    匿名内部类 参考:https://www.runoob.com/w3cnote/java-inner-class-intro.html 进入后搜索匿名内部类. 函数型接口 函数式接口(Function ...

  9. Lamda表达式学习笔记一

    Lamda表达式学习笔记一 一.Lamda语法诠释 三傻大闹宝莱坞的主人公兰彻说的一句话让我映像深刻:用简单的语言来表达同样的意 我并不是说书上的定义怎么怎么不对,而是应该理解书本上的定义,并用简单的 ...

随机推荐

  1. 【xmind】 使用 Java 生成思维导图

    前言 在日常的工作与学习中,我们经常会使用思维导图这个工具,来把抽象而又无形的思考转换成有形并且具体的图像,是理清思路,梳理逻辑的一大神器. 准确的说,思维导图并不是一个具体的工具,而是一种方法.是道 ...

  2. 【HTML】---常用标签(1)

    Html常用标签(1) 重新整理学习下前端知识从Html标签开始.我们先看HTML 骨架格式: <!DOCTYPE html> <!--这句话就是告诉我们使用哪个html版本--&g ...

  3. 一起学Android之音频视频

    概述 Android多媒体框架支持各种常见的媒体类型,可以很容易地将音频.视频和图像集成到App中.通过MediaPlayer Api,可以从应用程序资源(RAW).文件系统或网络上数据流资源来播放音 ...

  4. python跳出多重循环的方法

    方法1:自定义异常 # -*- coding:utf-8 -*- """ 功能:python跳出循环 """ # 方法1:自定义异常 cla ...

  5. 搭建SSM框架的配置文件

    pom.xml所需要的基本依赖和插件: <dependency>            <groupId>org.mybatis</groupId>         ...

  6. git如何合并远程2个分支

    1,先检出项目到一个文件夹git clone 2,你检出的项目默认是master,所以现在要查看远程全部分支git branch -a * master remotes/origin/HEAD -&g ...

  7. Python3爬取豆瓣网电影信息

      # -*- coding:utf-8 -*- """ 一个简单的Python爬虫, 用于抓取豆瓣电影Top前250的电影的名称 Language: Python3.6 ...

  8. linux下unzip解压报错“symlink error: File name too long”怎么办?提供解决方案。

    点击上方↑↑↑蓝字[协议分析与还原]关注我们 " 分享unzip工具的一个bug." 最近在研究菠菜站,中间用到了Spidermonkey,碰到一些小波折,在这里分享出来,以便大家 ...

  9. socket调试工具(Mac版)

    基于Mac版的Socket测试功能,类似于PostMan的功能,对于Socket长链接的项目开发很有帮助. 本人也是通过好多渠道才找到这篇文章,与大家共享: 按照步骤一步一步来就对了~ 本文参考于:h ...

  10. pip方式安装Jupyter

    pip方式安装Jupyter 如你的cmd命令窗口无法识别pip命令,请配置下环境变量(将python的''Scripts''文件夹路径添加至''path''变量里面). 使用以下命令更新pip和安装 ...