3分钟,学会一个测试员必懂 Lambda 小知识!

发布时间:2024年01月24日

今天再来给大家介绍下函数式接口和方法引用。

函数式接口

问: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】

常见函数式接口
函数式接口名称参数类型返回值方法
ConsumerTvoidvoid accept(T t)
SupplierTT get();
Function<T,R>TRR apply(T t);
PredicateTbooleanboolean test(T t);
BiFunction<T,U,R>T,URR apply(T t, U u);
UnaryOperatorTTT apply(T t);
BinaryOperatorT,TTT apply(T t1, T t2);
BiConsumer<T,U>T,Uvoidvoid accept(T t, U u)

方法引用

问:什么是方法引用?

答:当我们需要完成的 Lambda 体操作,已经有实现的方法了,可以使用方法引用!

问:为什么用方法引用?

答:省略参数,少写代码

举个例子???????
Comparator<Integer> com2 = (x, y) -> Integer.compare(x,y);//上面我们之前学过的Lambda表达式,其中Lambda体操作是比较两个整数的大小,//而且Integer的compare()正好完就是我需要完成的操作。//可以方法引用替代Comparator<Integer>?com3?=?Integer::compare;

方法引用格式

方法引用使用操作符?::?将方法名和对象或类的名字分开。
分三种格式:

  • 类::静态方法

  • 对象::实例方法

  • 类::实例方法

类::静态方法???????

(x, y) -> Integer.compare(x,y);方法引用改造:Integer::compare;

对象::实例方法???????

(x) -> System.out.printf(x);方法引用改造:System.out::println;

类::实例方法???????

test((x,y)->x.equals(y),"123","123");方法引用改造:test(String::equals,"123","abc");  注意:当引用方法的第一个参数是调用对象,并且第二个参数是需要传入参数(或无参数)时:ClassName::methodName比如上例子中:"123"当作equals方法调用对象,"abc"为传入equals()参数。相当于:"123".equals("abc")

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

文章来源:https://blog.csdn.net/IT_LanTian/article/details/135772656
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。