1、基础语法

java8引入新的操作符“->”箭头操作符,箭头操作符将Lambda表达式分成两部分

左侧:Lambda 表达式的参数列表,对应抽象方法的参数列表

右侧:需要执行的功能,对应抽象方法要实现的功能

2、秘诀

左右遇一括号省, 左侧推断类型省,

3、语法格式

语法格式一:无参数,无返回值

() ->System.out.println("Hello");

   @Test
public void test1() {
int num = 2;//jdk 1.7前,必需是final,才能被同级调用
Runnable r = new Runnable() {
@Override
public void run() {
System.out.println("Hello" + num);
}
};
r.run(); System.out.println("---------------------");
//使用Lambda表达式
Runnable r2 = () -> System.out.println("Hello Lambda");
r2.run();
}

语法格式二:有一个参数,无返回值

    @Test
public void test2() {
Consumer<String> con = (x) -> System.out.println(x);
con.accept("有一个参数");
}

语法格式三:若只有一个参数,小括号可以省略不写

    @Test
public void test2() {
Consumer<String> con = x -> System.out.println(x);
con.accept("有一个参数");
}

语法格式四:有两个参数,有返回值,并且Lambda体中有多条语句

  @Test
public void test4() {
Comparator<Integer> com = (x, y) -> {
System.out.println("函数式接口");
return Integer.compare(x, y);
};
}

语法格式五:有两个参数,有返回值,并且Lambda体内只有一条语句,              return 和{}都可以不写

    @Test
public void test5() {
Comparator<Integer> com = (x, y) -> Integer.compare(x, y); }

语法格式六:Lambda 表达式的参数列表中数据类型可以省略不写,

因为JVM编译器通过上下文推断出,数据类型,即“类型推断”

                      (Integer x,Integer y) -> Intrger.compare(x,y);

4、Lambda 表达式需要“函数式接口”的支持

函数式接口:接口中只有一个抽象方法的接口,可用@FunctionalInterface修饰,可以检查是否是函数式接口

//接口,只有一个参数,有返回值的接口
package Clock;
@FunctionalInterface
public interface MyFun {
public Integer getValue(Integer x); }
 //需求:对一个数进行运算
@Test
public void test7() {
Integer num = operation(100, x -> x * x);
System.out.println(num);
System.out.println(operation(200, y -> y + 200)); } public Integer operation(Integer num, MyFun my) {
return my.getValue(num);
}

Lambda 表达式的基础语法的更多相关文章

  1. iOS-----正则表达式的基础语法

    正则表达式简单语法总结 一.什么是正则表达式 从概念上来说,正则表达式也是一门小巧而精炼的语言,它可以用来简化检索特定的字符串,替换特定字符等功能,有许多开发语言工具,都内嵌支持正则表达式.那么一个正 ...

  2. 深入浅出java 8 lambda表达式--零基础一分钟入门

    lambda从使用上来说,第一感觉直白的理解就是,少了很多不必要的匿名回调类的写法,比如: public static void main(String[] args) { PlatformQuery ...

  3. 函数:lambda表达式 - 零基础入门学习Python021

    函数:lambda表达式 让编程改变世界 Change the world by program lambda表达式 Python允许使用lambda关键字来创建匿名函数.我们提到一个新的关键字:匿名 ...

  4. 记关于 Lambda 表达式的基础写法

    namespace MyLambda { public delegate void Action<in T1, in T2, in T3, in T4, in T5, in T6, in T7, ...

  5. JDK8新特性02 Lambda表达式02_Lambda语法规则

    //函数式接口:只有一个抽象方法的接口称为函数式接口. 可以使用注解 @FunctionalInterface 修饰 @FunctionalInterface public interface MyF ...

  6. Java8新特性 -- Lambda基础语法

    Lambda 表达式的基础语法: Java8引入了一个新的操作符 “->”  该操作符称为箭头操作符或Lambda操作符, 该操作符将Lambda表达式拆分为两部分: 左侧: Lambda表达式 ...

  7. JDK8--03:lambda表达式语法

    对于lambda表达式的基础语法,一个是要了解lambda表达式的基础语法,另外一个是需要了解函数式接口 一.lambda表达式基础语法描述 java8中引入了新的操作符  ->  ,可以称为l ...

  8. java8新特性之——lambda表达式的使用

    lambda表达式简介 个人理解,lambda表达式就是一种新的语法,没有什么新奇的,简化了开发者的编码,其实底层还是一些常规的代码.Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解 ...

  9. Java8——Lambda表达式

    /* * 一.Lambda 表达式的基础语法:Java8中引入了一个新的操作符 "->" 该操作符称为箭头操作符或 Lambda 操作符 * 箭头操作符将 Lambda 表达 ...

随机推荐

  1. IDA反汇编EXE添加一个启动时的消息框

    IDA反汇编EXE添加一个启动时的消息框 上一篇文章介绍了用OD反汇编EXE添加一个启动时的消息框,这篇文章也是实现同样的效果,这边主要的思路还是将其反汇编得到汇编代码后,然后手动修改他的逻辑首先跳转 ...

  2. 性能工具之Jmeter小白入门系列之一

    一.简单了解 Apache JMeter The Apache JMeter application is open source software, a 100% pure Java applica ...

  3. iis配置代理服务器解决跨域问题

    iis配置代理服务器解决跨域问题 解决:在发布的项目根目录添加web.config配置文件 在配置文件中system.webServer节点中加入 <?xml version="1.0 ...

  4. Message、Handler、Message Queue、Looper 之间的关系

    单线程模型中Message.Handler.Message Queue.Looper之间的关系 1.Message Message即为消息,可以理解为线程间交流的信息.处理数据后台线程需要更新UI,你 ...

  5. 把新建的vue项目上传到码云

    1:在码云上建一个仓库(使用Readme文件初始化这个项目的勾取消掉) 2:在项目文件中打开git命令窗口(如下图),命令git init 初始化git仓库 运行之后有一个.git文件夹 现在用vsc ...

  6. 「一本通 3.1 练习 4」Tree 题解

    题目描述 原题来自:2012 年国家集训队互测 给你一个无向带权连通图,每条边是黑色或白色.让你求一棵最小权的恰好有 条白色边的生成树.题目保证有解. 输入格式 第一行V,E,need 分别表示点数, ...

  7. Linux:CentOS7防火墙 开放端口配置

    查看已开放的端口 firewall-cmd --list-ports 开放端口(开放后需要要重启防火墙才生效) firewall-cmd --zone=public --add-port=3338/t ...

  8. 安装eclipse及Helloworld体验

    准备工作 如果没有配置java环境变量的请移步:https://www.cnblogs.com/lhns/p/9638105.html 下载eclipse 网址:https://www.eclipse ...

  9. Ubuntu创建图标

    起因 安装一些软件时,总是没有图标,导致无法固定到docky栏,所以极为不方便,所以需要自己创建图标. 操作 以创建微信图标为例 [Desktop Entry] Name=Wecaht #名字 Com ...

  10. Hibernate框架(二)POJO对象的操作

    POJO对象其实就是我们的实体,这篇博客总结一下框架对POJO对象对应数据库主键的生成策略,和一些对POJO对象的简单增删改查的操作. 一,Hibernate框架中主键的生成策略有三种方式: 1,数据 ...