基础语法:‘->’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. iOS-原生纯代码约束总结(一)之 AutoresizingMask

    一,概述 iOS有两大自动布局利器:autoresizing 和 autolayout(autolayout是IOS6以后新增).autoresizing是UIView的属性,一直存在,使用也比较简单 ...

  2. MySQL5.7免安装版配置详细教程

    MySQL5.7免安装版配置详细教程 一. 软件下载 Mysql是一个比较流行且很好用的一款数据库软件,如下记录了我学习总结的mysql免安装版的配置经验,要安装的朋友可以当做参考哦 mysql5.7 ...

  3. Python 常用的日期时间命令

    今天用到自动添加当前时间,居然把之前的知识忘了,特整理常用的日期时间命令 代码: # 获取当前时间# import time# localtime = time.localtime(time.time ...

  4. Appium环境配置(二)

    一.使用Eclipse直接创建案例工程 1.打开Eclipse,[File]-->[New]-->[Project] 2.选择[Java Project]-->[Next] 3.输入 ...

  5. 浏览器数据库 IndexedDB 入门教程

    一.概述 随着浏览器的功能不断增强,越来越多的网站开始考虑,将大量数据储存在客户端,这样可以减少从服务器获取数据,直接从本地获取数据. 现有的浏览器数据储存方案,都不适合储存大量数据:Cookie 的 ...

  6. js判断开始时间不能小于结束时间

    function validTime(startTime,endTime){ var arr1 = startTime.split("-");       var arr2 = e ...

  7. opencv图片拼接报错cv::Stitcher::ERR_NEED_MORE_IMGS (1)

    #include "opencv2/imgcodecs.hpp" #include "opencv2/highgui.hpp" #include "o ...

  8. 前端用Json传输数据给后台,用postman测试

    postman发送json格式的post请求   在地址栏里输入请求url:http://127.0.0.1:8081/getmoney 选择“POST”方式, 在“headers”添加key:Con ...

  9. git出现warning: LF will be replaced by CRLF的解决方法

    今天ytkah用git上传文件的时候出现了warning: LF will be replaced by CRLF的错误,具体信息如下,这是因为跨平台开发下产生的.由于编辑器的不同或者Windows程 ...

  10. MySQL5.7配置基于GTID的复制

    MySQL5.7下配置GTID复制的方法: 修改主库和从库的配置文件,加入下列部分的配置项:主库:[mysqld]log-bin=mysql-binbinlog_format= ROWgtid-mod ...