未加星标

Java Lambda表达式Java

字体大小 | |
[大数据技术 所属分类 大数据技术 | 发布者 店小二04 | 时间 | 作者 红领巾 ] 0人收藏点击收藏

Java Lambda表达式Java
python
Java Lambda表达式Java
Java
Java Lambda表达式Java
Hadoop
Java Lambda表达式Java
编程
Java Lambda表达式Java
培训
Java Lambda表达式Java
函数

“Lambda 表达式”(Lambda expression)是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包。


基本函数的格式

Java函数通常是我们类中定义的行为,格式如下:


修饰符 返回类型 函数名(参数列表){

语句块

return 返回值;

}


修饰符:函数的可见性,决定函数的使用范围

返回类型:函数的输出信息,与return配合使用

函数名:函数标识

参数列表:函数的输入信息

语句块:函数执行的操作

这就是函数的基本格式。

代码中函数名,返回类型是一定要有的,其他的可有可无。


所以代码中最简单的函数定义格式如下:

返回类型 函数名();

Lambda表达式格式


我们说Lambda表达式是一个匿名函数,那我们来看一下Lambda表达式的格式。


(参数列表) -> {语句块}


参数列表:函数的输入信息

->: Lambda表达式关键符(也可以理解成关键字)

语句块:函数执行的操作

“->”是必须有的,我们来看下最简单的Lambda表达式结构:


() -> {}


Lambda表达式是一个表达式,程序中被作为一个值来使用。JAVA语言是强类型面向对象的语言,所以必须提供一种数据类型作为Lambda表达式的返回值类型、符合JAVA中函数格式的定义、符合面向对象规则,所以最终Lambda表达式要有一个映射成JAVA对象的过程。


函数式接口

函数式接口是用来完成Lambda表达式映射成JAVA对象的一种接口,确切的说把接口中仅存的一个抽象方法和Lambda表达式绑定并完成对象的实例化。

那么接口是如何与Lambda表达式建立类型关系的?

接口的抽象方法。下面举例说明。

定一个函数式接口


/**

* @author Stephen Yue

*/

public interface Nothing {

void doNothing();

}


我们在接口里定义了一个没有参数、返回值的抽象方法。

接口我们定义好了,需要我们定义接口的实现方式。我们选取Lambda表达式来完成这个实现。


// 指定接口中方法的实现过程并创建对象

Nothing nothing = () -> {};

nothing.doNothing();


给Nothing接口中doNothing方法指定了一个空实现的Lambda表达式。即没有参数、没有返回值、什么都不做的一个空实现。所以执行之后没有任何结果。我们改一下实现方式。


Nothing nothing = () -> {

System.out.println("hello Lambda!");

};

nothing.doNothing();


新的Lambda表达式实现同样符合接口中抽象方法定义的要求,不过程序执行完,会在控制台输出:hello Lambda!


总结

Lambda表达式的出现,提供了新的接口实现方式。接口中抽象方法名字是Lambda表达式的标识符,接口中参数类型对应Lambda表达式的参数类型,接口中返回类型对应Lambda表达式返回类型,Lambda表达式的语句块来完成抽象方法的逻辑实现。


Lambda表达式的优点:

简码

面向函数式编程(也可以理解面向接口编程)

闭包


欢迎加入本站公开兴趣群

软件开发技术群

兴趣范围包括:Java,C/C++,Pythonphp,Ruby,shell等各种语言开发经验交流,各种框架使用,外包项目机会,学习、培训、跳槽等交流

QQ群:204132433


Hadoop源代码研究群

兴趣范围包括:Hadoop源代码解读,改进,优化,分布式系统场景定制,与Hadoop有关的各种开源项目,总之就是玩转Hadoop

QQ群:204050420

tags: Lambda,表达式,#160,函数,接口,gt,Java,类型,返回,格式,参数,JAVA,doNothing,nothing,Nothing
分页:12
转载请注明
本文标题:Java Lambda表达式Java
本站链接:http://www.codesec.net/view/570383.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 大数据技术 | 评论(0) | 阅读(76)