基础语法:‘->’Lambda操作符
* 左侧:Lambda表达式的参数列表 对应接口中方法中的参数列表中的参数(比如nice1中MyPredict这个接口中的方法)
* 右侧:Lambda表达式中所需要执行的功能。 对应接口中方法的实现(比如nice1中MyPredict这个接口中的方法)
*
* 语法格式1:无参数,无返回值 ()->System.out.println("aaa")
* 语法格式2:有一个参数,无返回值
* 语法格式3:只有一个参数小括号可以不写,无返回值
* 语法格式4:两个以上参数,并且Lambda体中多条语句--->test3
* 语法格式5:若Lambda中只有一个语句,return和大括号都可以不写,参数列表中的参数类型可以不写,JVM编译器可以通过上下文推断出类型
package airycode_java8.nice2;

import org.junit.Test;

import java.util.Comparator;
import java.util.function.Consumer; /**
* 基础语法:‘->’Lambda操作符
* 左侧:Lambda表达式的参数列表 对应接口中方法中的参数列表中的参数(比如nice1中MyPredict这个接口中的方法)
* 右侧:Lambda表达式中所需要执行的功能。 对应接口中方法的实现(比如nice1中MyPredict这个接口中的方法)
*
* 语法格式1:无参数,无返回值 ()->System.out.println("aaa")
* 语法格式2:有一个参数,无返回值
* 语法格式3:只有一个参数小括号可以不写,无返回值
* 语法格式4:两个以上参数,并且Lambda体中多条语句--->test3
* 语法格式5:若Lambda中只有一个语句,return和大括号都可以不写,参数列表中的参数类型可以不写,JVM编译器可以通过上下文推断出类型
*
*
*
*
*
*
*
*/
public class TestLambda2 { @Test
public void test1(){
int num = 0;//jdk1.7之前,必须是final
Runnable r = new Runnable() {
@Override
public void run() {
System.out.println("Hello World"+num);
}
}; r.run();
System.out.println("---------------");
Runnable r1 = ()-> System.out.println("Hello Lambda");
r1.run();
} @Test
public void test2(){
Consumer<String> con = (x)-> System.out.println(x);
con.accept("airycode");
} @Test
public void test3(){ // Comparator<Integer> com = (x,y)->{
// System.out.println("函数式接口");
// return Integer.compare(x,y);
// }; Comparator<Integer> com = (x,y)-> Integer.compare(x,y); Comparator<Integer> com2 = (Integer x,Integer y)-> Integer.compare(x,y); } @Test
public void test5(){
//必须这样的写法,不能拆开
String[] strs = {"aaa","bbb"}; } @Test
public void test6(){
Integer operation = operation(100, (x) -> x * x);
System.out.println(operation);
System.out.println("----------------");
Integer operation2 = operation(200, (x) -> x +200);
System.out.println(operation2);
} public Integer operation(Integer num,MyFun myFun){
return myFun.getValue(num);
} } package airycode_java8.nice2; /**
* Created by admin on 2019/1/2.
*/
@FunctionalInterface
public interface MyFun<T> { public Integer getValue(Integer num);
}

  

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

  1. Java8初体验(一)lambda表达式语法

    感谢同事[天锦]的投稿.投稿请联系 tengfei@ifeve.com 本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘.因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解 ...

  2. Java8 lambda表达式语法 1

    本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘.因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解偏差的地方,希望大家帮忙指出,我会持续修改和优化.本文是该系列的第一篇, ...

  3. Lambda 表达式语法

    本主题介绍 lambda 表达式的语法. 它演示提供 lambda 表达式的结构元素的示例,这些元素与示例. Lambda 表达式语法 下面用于定义显示语法,ISO C++11 从标准,lambda ...

  4. Java8初体验(1):lambda表达式语法

    原文出处: 一冰_天锦 本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘.因为本人也是刚刚开始学习Java8,所以文中肯定有错误和理解偏差的地方,希望大家帮忙指出,我会持续修改和优化 ...

  5. java8【一、lambda表达式语法】

    特点 lambda表达式允许将函数作为方法的参数 lambda表达式更加简洁 特征 可选类型声明:不需要声明参数类型,编译器可以统一识别参数值. 可选的参数圆括号:一个参数无需定义圆括号,但多个参数需 ...

  6. Lambda表达式语法进一步巩固

    上一次已经初步使用到了Lambda表达式了,这次再次对它的语法进行一下巩固,因为它实在是太重要的,所以多花时间彻底理解它是非常有必要的. 在"Java8 in Action"一书中 ...

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

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

  8. Lambda表达式语法2

    package airycode_java8.nice3; import airycode_java8.nice1.Employee; import org.junit.Test; import ja ...

  9. Lambda表达式的语法与如何使用Lambda表达式

    Lambda表达式是对象,是一个函数式接口的实例 如何来写Lambda表达式? 看参数 看返回值 代码实例1: package day2; import jdk.nashorn.internal.co ...

随机推荐

  1. PHP之类型转化

    类型转化的判别 PHP在变量定义中不需要(或者不支持)明确的类型定义:变量类型是根据使用该变量的上下文所决定的, 也就是说,如果把一个string值付给变量$var,$var就成了一个string,如 ...

  2. 2016年蓝桥杯省赛A组c++第2题(暴力求解)

    /* 某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛. 现在算起来,他一共吹熄了236根蜡烛. 请问,他从多少岁开始过生日party的? 请填写他开始过生日party ...

  3. iOS-静态库,动态库,framework浅析(二)

    创建.a静态库 第一步,新建工程.     一般使用工程名就使用库的名称,比如我这里用FMDB来创建静态库,我的工程名就取名为FMDB,创建的.a静态库就是libFMDB.a.             ...

  4. Servlet重写init(ServletConfig config)还是init()

    原文地址:Servlet重写init(ServletConfig config)还是init() 写一个Servlet时,有时需要我们重写该Servlet的初始化方法,然后,究竟是重写init(Ser ...

  5. jMeter_响应数据乱码

    jMeter测试时服务响应数据乱码 方式一:修改配置文件参数 1.修改jMeter安装目录 jmeter.properties 中 sampleresult.default.encoding=UTF- ...

  6. canvas将图片转成base64格式 以及 验证图片是否透明

    logoImgUpload:function(file) { let self = this; self.formatUpload(file); let reader = new FileReader ...

  7. localstorage 和 sessionstorage 是什么?区别是什么?

    localstorage 和 sessionstorage 一样都是用来存储客户端临时信息的对象,他们均只能存储字符串类型对象: localstorage生命周期是永久的,这意味着除非用户在浏览器提供 ...

  8. Laravel上传产品图片Uploading img

    这节我们讲Laravel产品图片上传,有很多方式可以实现,这里我们用intervention/image插件来进行.首先安装intervention/image插件,在命令行输入 composer r ...

  9. arcgis api for javascript 距离与面积量算

    在之前的实验中,距离量算跟面积量算一直出问题,费了非常长的时间,各种调式找不到原因. 如今成功完毕.与君共勉 1.距离量算中        lengthParams.polylines = [geom ...

  10. CentOS+Uwsgi+Nginx发布Flask开发的WebAPI

    1.WebAPI 开发工具VS 于Windows环境中开发完成后使用SFTP进行同步文件到Centos中使用 2.重点:WebAPI触发的方法是为了发送Celery异步调度任务 Celery框架使用涉 ...