基础语法:‘->’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. 深入理解无穷级数和的定义(the sum of the series)

    Given an infinite sequence (a1, a2, a3, ...), a series is informally the form of adding all those te ...

  2. [dpdk] TSC , HPET, Timer, Event Timer,RDTSCP

    关于dpdk timer跨越CPU core调度的准确性问题 首先dpdk的timer接口里边使用 cpu cycle来比较时间.根据之前的内容 [dpdk] dpdk --lcores参数 当一个E ...

  3. [UI] UI things

    反正我不懂. 但是很酷. https://facebook.github.io/react/ https://cn.vuejs.org/ https://angular.cn/

  4. MDK5如何新建一个工程

    1.首先新建一个文件夹,然后在子文件夹下新建四个子文件,子文件分别为:CORE.HALLIB.OBJ.USER 2.打开MDK5,new一个工程,然后选择开发板芯片的型号 3.在这四个文件中分别添加相 ...

  5. 内部排序->插入排序->其它插入排序->2-路插入排序

    文字描述 在折半插入排序的基础上进行改进, 另设一个和待排序序列L相同的数组D, 首先将L[1]赋值给D[0], 数组D中数据是已经排好序的, first指向最小值下标,final指向最大值下标.初始 ...

  6. python摸爬滚打之day06----小数据池、编码解码

    1.小数据池 代码块:  一个模块, 一个函数, 一个类, 甚至每一个command命令都是一个代码块. 一个文件也是一个代码块.而不需要创建一个新的数据. 这样会节省更多的内存区域. 在cmd命令行 ...

  7. codechef Sum of Cubes 图论

    正解:图论+数学 解题报告: 先放个传送门QwQ 然后放下题目大意?就说给定简单图,无自环或重边,然后求(∑e[i][j])k,i,j∈S,S为点集的子集 然后因为k的取值只有[1,3],所以这里分类 ...

  8. (4.2)mysql备份还原——备份概述

    1.什么情况下会用到备份呢? [1.1]灾难恢复 [1.2]单位审计:数据库在过去某一个点是什么样的 [1.3]跨机房灾备:异地备份 [1.4]认为的DDL或者DML语句,导致主从库的数据消失 [1. ...

  9. 笔记:mysql升序排列asc,降序排列desc

    经常会忘记mysql中升序和降序用什么字符来表示,现在就做个笔记:升序排列asc,降序排列desc,举个例子,下面是按时间降序调用栏目的文章,也即是栏目最新文章 [e:loop={"sele ...

  10. 用xtrabackup2.4备份mysql5.6.30一直显示log scanned up to

    用xtrabackup2.4备份mysql5.6.30一直显示log scanned up to 一直处于log scanned up to,只能ctrl+c强制终止备份 没有大事务 停止xtraba ...