10、匿名内部类实现接口,lambda表达式实现函数式接口
来源:互联网 发布:simpson算法流程图 编辑:程序博客网 时间:2024/06/15 18:05
匿名内部类可以实现一个接口的对象,注意是接口的对象,直接实现接口的抽象方法(所有),然后使用,因为没有经过“类”这一环节,所以叫匿名类,即认为这一对象属于某个不具名的类,这样的过程自然就不能用这个“不具名的类”再产生其他对象,故只能产生这一个对象
函数式接口,首先是一个接口,然后接口里只有一个抽象方法,其他随意,抽象方法只能有一个。
这时可以用lambda表达式来创建函数式接口,lambda表达式负责实现那个唯一的抽象方法。
package Chapter6;interface FuncInter{int Function(int[] args);}public class InterLambda {public int Proc(int[] args,FuncInter Func){return Func.Function(args);}public static void main(String[] args){int[] arry = {1,5,9};//匿名内部类先创建对象再实现FuncInter f = new FuncInter() {@Overridepublic int Function(int[] args) {// TODO Auto-generated method stub int sum = 0; for(int temp : args) { sum += temp; }return sum;}};System.out.println(new InterLambda().Proc(arry, f));//匿名内部类直接实现System.out.println(new InterLambda().Proc(arry, new FuncInter() {@Overridepublic int Function(int[] args) {// TODO Auto-generated method stub int sum = 0; for(int temp : args) { sum += temp; }return sum;}}));//lambda表达式直接实现System.out.println(new InterLambda().Proc(arry, (int[] as) ->{ int sum = 0; for(int temp : as) { sum += temp; } return sum; }) );//先用Lambda表达式创建一个函数式接口的实例,再调用FuncInter ff = (int[] as) ->{ int sum = 0; for(int temp : as) { sum += temp; } return sum; }; System.out.println(new InterLambda().Proc(arry, ff));}}
注意,从接口中的抽象方法,到类方法的实现,再到lambda表达式,返回值要统一
0 0
- 10、匿名内部类实现接口,lambda表达式实现函数式接口
- 匿名内部类实现接口
- 【匿名内部类】通过内部类匿名实现接口
- 匿名内部类implements(实现)interface(接口)
- 匿名内部类实现接口,继承类
- 匿名内部类 通过接口来实现
- 内部类与匿名内部类实现接口
- 内部类与匿名内部类实现接口
- 函数式编程--lambda表达式对比匿名内部类
- 6 接口、Lambda表达式和内部类
- java接口和类(十)内部类实现接口及匿名内部类
- 利用匿名内部类实现Java接口方法
- 利用匿名内部类实现Java接口方法
- Java面向对象 匿名内部类实现接口
- 基于接口实现匿名内部类的注意事项
- new 接口{内部实现方法} 转为 匿名内部类
- android监听器接口实现,内部类实现,匿名内部类实现
- 用内部类实现接口
- vi查找替换命令详解
- hdu 1312 Red and Black
- 23个MySQL常用查询语句
- Java中的==和equals区别
- Team Explorer 使用教程1
- 10、匿名内部类实现接口,lambda表达式实现函数式接口
- 二进制乘法原理
- Team Explorer使用教程2
- 解决修改text里面value失败问题
- Spring AOP (二)
- Java this 关键字用法
- Chomp game博弈游戏
- Team Explorer使用教程3
- sencha touch自定义messageBox