For investors
股价:
5.36 美元 %For investors
股价:
5.36 美元 %认真做教育 专心促就业
函数式编程开发是目前大多数Java程序员都在学习和应用的一种编程开发模式,而本文我们就通过案例分析来简单了解一下,函数式编程开发都需要关注哪些问题。
1、函数式接口
什么是函数式接口
什么是函数式接口?这是我们理解Lambda表达式以及方法引用的重点,这些接口是lambda表达式和方法引用的目标类型,这里我们引用一个比较容易理解的说法:函数式接口是一个只有一个抽象方法(不包含祖先类Object中的公共方法,如hashcode()等)的接口。
当我们在编写接口时,这种函数式方法模式可以使用@FunctionalInterface注解来强制实施,如果被注解的接口不符合标准那么就会在编译时报错。
2、Lambda表达式
lambda表达式本质上是一个匿名方法,其中以->为分隔符,在其前的是输入参数,在其后的是lambda表达式代表的匿名方法的方法体(有时我们会简写成一个返回变量的样子)。
lambda表达式是函数式接口的其中一个"成果"——另一个是方法引用,我们可以将相同输入输出参数(类型和数量都匹配)的lambda表达式赋给一个函数式接口,通过调用赋值后的接口再来调用我们创建的lambda表达式。
有以下这些问题需要注意:
lambda表达式如果只有一个参数,可以只写该参数不写括号,但你要知道这是一种特殊情况而不是相反
通常需要括号将参数包裹起来,为了一致性考虑,单个参数时也可以使用括号
没有参数时,必须要有括号指代输入的参数
存在多个参数时必须要以括号包裹,逗号分割
如果一句话就可以表示返回值,那么就直接写到方法体所在的位置,此时return关键字是不合法的
如果一句话无法囊括,那么就需要使用花括号将所有函数体包裹并以return返回结果
与内部匿名类相比,lambda表达式的可读性极佳,所以如果你需要使用这样的方法,你应该掌握lambda表达式。
注意,如果你要利用lambda表达式实现递归调用自身的话,必须要将该表达式赋值给一个静态变量或一个实例变量,否则该语句对于编译器可能过于复杂,会产生编译错误。
3、方法引用
方法引用指向的是方法,通过类名或对象名,跟::,然后跟方法名就可以实现方法引用,注意,这种方法并不需要在方法名后面加上参数列表。
实际上,除了普通的方法外,我们还可以通过new代替方法名来引用其构造器方法,这也是非常有用的,由于构造器方法实际上绑定该类,相当于静态方法,所以我们只需要通过接口直接调用即可。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei456学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。