前****言
函数式接口
问:Lambda 表达式的类型是什么?
答:函数式接口
问:函数式接口是什么?
答:只包含一个抽象方法的接口,称为函数式接口 (functional interface) , 一般用 @FunctionalInterface 注解来检测是否是函数式接口。
自定义函数式接口
@FunctionalInterfacepublic interface MyFunctionalInterface { String test(String p);}
使用泛型@FunctionalInterfacepublic interface MyFunctionalInterface<T,R> { R test(T t);}
函数式接口作为方法参数
public void test(MyFunctionalInterface mfi,String str) { System.out.println(mfi.getValue(str));}
调用test()test(p -> p.toUpperCase(),"luojie");控制台输出:LUOJIE
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】
常见函数式接口
| 函数式接口名称 | 参数类型 | 返回值 | 方法 |
|---|---|---|---|
| Consumer | T | void | void accept(T t) |
| Supplier | 无 | T | T get(); |
| Function<T,R> | T | R | R apply(T t); |
| Predicate | T | boolean | boolean test(T t); |
| BiFunction<T,U,R> | T,U | R | R apply(T t, U u); |
| UnaryOperator | T | T | T apply(T t); |
| BinaryOperator | T,T | T | T apply(T t1, T t2); |
| BiConsumer<T,U> | T,U | void | void accept(T t, U u) |
方法引用
问:什么是方法引用?
答:当我们需要完成的 Lambda 体操作,已经有实现的方法了,可以使用方法引用!
问:为什么用方法引用?
答:省略参数,少写代码
举个例子
Comparator<Integer> com2 = (x, y) -> Integer.compare(x,y);//上面我们之前学过的Lambda表达式,其中Lambda体操作是比较两个整数的大小,//而且Integer的compare()正好完就是我需要完成的操作。//可以方法引用替代Comparator<Integer> com3 = Integer::compare;
方法引用格式
方法引用使用操作符 :: 将方法名和对象或类的名字分开。
分三种格式:
- 类::静态方法
- 对象::实例方法
- 类::实例方法
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
开源项目:docs.qq.com/doc/DSlVlZExWQ0FRSE9H