Java---lambda表达式
2016-08-23 23:12
330 查看
JDK1.8开始将匿名内部类的实现转为了函数式实现,引入了lambda表达式。
函数式编程的最严格要求:每一个接口里面只允许有一个抽象方法。
为了保证所定义的接口一定是函数式编程所使用的接口,那么一般在定义函数式接口前需要加上一个“@FunctionInterface”注解。
函数式编程的基本组成: (参数) -> 程序的语句;
单行语句:(参数) -> 程序的语句;
多行语句:(参数) -> {程序的语句 … return};
简单返回:(参数) -> 表达式 ;
实例分析
单行语句:
(参数) -> 程序的语句;
运行结果: 输出 数据A
多行语句:
(参数) -> {程序的语句 … return};
运行结果:输出false;
简单返回:
(参数) -> 表达式 ;
运行结果: 输出true
函数式编程的最严格要求:每一个接口里面只允许有一个抽象方法。
为了保证所定义的接口一定是函数式编程所使用的接口,那么一般在定义函数式接口前需要加上一个“@FunctionInterface”注解。
函数式编程的基本组成: (参数) -> 程序的语句;
单行语句:(参数) -> 程序的语句;
多行语句:(参数) -> {程序的语句 … return};
简单返回:(参数) -> 表达式 ;
实例分析
单行语句:
(参数) -> 程序的语句;
运行结果: 输出 数据A
@FunctionInterface interface IDemo<T>{ public void print(T t); } public class Test{ public static void main(String[] args) { IDemo<String> demo = (str) -> System.out.println(str); demo.print("数据A"); } }
多行语句:
(参数) -> {程序的语句 … return};
运行结果:输出false;
@FunctionInterface interface IDemo<T,r>{ public r print(T t1,T t2); } public class Test{ public static void main(String[] args) { IDemo<String,Boolean> demo = (str1,str2) ->{ return str1.equals(str2); }; System.out.println(demo.print("输出","输入")); } }
简单返回:
(参数) -> 表达式 ;
运行结果: 输出true
@FunctionInterface interface IDemo<T>{ public boolean print(T t1,T t2); } public class Test{ public static void main(String[] args) { IDemo<Integer> demo = (str1,str2) -> str1==str2; System.out.println(demo.print(100,100)); } }
相关文章推荐
- Ruby中使用Block、Proc、lambda实现闭包
- Ruby中的block、proc、lambda区别总结
- C#函数式编程中的缓存技术详解
- C++实现的一个可以写递归lambda的Y函数
- 实例讲解C++编程中lambda表达式的使用
- C#特性之匿名方法和Lambda表达式
- C#函数式编程中的部分应用详解
- 理解C#中的Lambda表达式
- 初步认识C#中的Lambda表达式和匿名方法
- C#3.0中Lambda表达式详解
- C#基础之Lambda表达式用法实例教程
- 浅谈javascript函数式编程
- 使用 JavaScript 进行函数式编程 (一) 翻译
- C#函数式编程中的标准高阶函数详解
- 深入探讨javascript函数式编程
- Java编程中使用lambda表达式的奇技淫巧
- Java函数式编程(五):闭包
- javascript 函数式编程
- 用函数式编程技术编写优美的 JavaScript_ibm
- 快速入门Java中的Lambda表达式