我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么对Java8中的函数式接口进行测试

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么对Java8中的函数式接口进行测试

怎么对Java8中的函数式接口进行测试?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

1. 函数式接口的理解

根据重构的思想,需要把容易变化的模块进行抽象并封装起来,从这个点来看,Java8新引入的函数式接口就是基于这个思想进行设计的。

2. 函数式接口定义 

2.1 自定义如下

需要FunctionalInterface关键字显示声明:

@FunctionalInterface public interface AppleInterface {public void test(); }

2.2 系统预定义

java.util.function.Consumer;java.util.function.Function;java.util.function.Predicate;java.util.function.Supplier;

可以去查看源码了解具体的细节,这几个接口包括了常用的一些场景,一般可满足需要

3. 函数式接口的使用

函数式接口一般使用前需要先定义,也可以使用系统预定义的几个函数式接口

函数式接口的使用和使用一个变量没有区别,显示声明定义,格式如下:

FunctionInterface interface=null;

这里的interface虽然看起来是一个变量,可是实际却是一段行为代码,用于执行具体的业务逻辑,可以自由在方法接口间传递,也可以直接执行

interface.doSomeThing();

如定义函数式接口为参数的接口:

public void filter(FunctionInterface interface){ interface.doSomeThing();}

4. 函数式接口练习

4.1 自定义实体类Apple

public class Apple {  private String color;  private float weight;  public Apple(String color, float weight) {  this.color = color;  this.weight = weight;  }  public String getColor() {  return color;  }  public void setColor(String color) {  this.color = color;  }  public float getWeight() {  return weight;  }  public void setWeight(float weight) {  this.weight = weight;  }}

4.2 自定义函数式接口

该接口有一个test方法,不接收任何参数,也没有任何返回

@FunctionalInterfacepublic interface AppleInterface {  public void test();}

4.3 测试自定义函数式接口

 @Test  public void DefineFunctionInterface(){  //自定义函数式接口  AppleInterface at=()->System.out.println("define FunctionInterface AppleInterface.");  at.test();  }

至此,就完成一个很简单的函数式接口的定义和调用

4.4 系统预定义函数式接口

Consumer<T>:该接口接收一个对象T,返回void,测试如下

 @Test  public void ConsumerTest(){  Consumer<Apple> consumer=(Apple app)->{System.out.println(app.getColor()+","+app.getWeight());};  List<Apple> apps=Arrays.asList(new Apple("red", 120),new Apple("blue", 80), new Apple("green",100));  ConsumerApple(apps,consumer);  }  public void ConsumerApple(List<Apple> apps,Consumer<Apple> c){  for(Apple app:apps){ c.accept(app);  }  }

Supplier<T>:该接口不接收任何参数,返回一个对象T,测试如下:

 @Test  public void SupplierTest(){  Supplier<Apple> supplier=()->{return new Apple("hello supplier",999);};  Apple app=supplier.get();  System.out.println(app.getColor()+","+app.getWeight());  }

Predicate<T>:该接口接收一个对象T,返回一个Boolean

 @Test  public void PredicateTest(){  //系统预定义函数式接口测试  Predicate<Apple> p1=(Apple a)->{if(a.getWeight()>90) return true;return false;};  Predicate<Apple> p2=(Apple a)->{if(a.getColor().equals("blue")) return true;return false;};  List<Apple> apps=Arrays.asList(new Apple("red", 120),new Apple("blue", 80), new Apple("green",100));  filterApple(apps,p1);//筛选重量大于90g的苹果  filterApple(apps,p2);//筛选蓝色的苹果  }  public void filterApple(List<Apple> apps,Predicate<Apple> p){  for(Apple app:apps){ if(p.test(app)){ System.out.println(app.getColor()+","+app.getWeight()); }  }  }

Function<T,R>: 该接口接收一个对象T,经过转换判断,返回一个对象R

 @Test  public void FunctionTest(){  Function<String,Apple> function=(String s)->{return new Apple(s,666);};  Apple app=function.apply("red");  System.out.println(app.getColor()+","+app.getWeight());  app=function.apply("green");  System.out.println(app.getColor()+","+app.getWeight());  }

关于怎么对Java8中的函数式接口进行测试问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网行业资讯频道了解更多相关知识。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么对Java8中的函数式接口进行测试

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么对Java8中的函数式接口进行测试

怎么对Java8中的函数式接口进行测试?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1. 函数式接口的理解根据重构的思想,需要把容易变化的模块进行抽象并封装起来,从这个点来
2023-05-31

怎么在java8中对函数进行引用

怎么在java8中对函数进行引用?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。函数引用的类型函数引用分为以下四种:静态函数,比如 Integer 类的 pars
2023-05-31

Java8中怎么实现一个函数式接口

这篇文章给大家介绍Java8中怎么实现一个函数式接口,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。以下我们继续深入Java8函数式编程模型public class Test1 { public static void
2023-05-30

Postman中怎么进行接口测试和自动化测试

在Postman中进行接口测试和自动化测试可以按照以下步骤进行:创建一个新的Postman集合:在Postman中,创建一个新的集合来组织你的测试用例。集合可以包含多个请求,你可以按照不同的功能或模块进行组织。添加测试用例:在集合中添加测试
Postman中怎么进行接口测试和自动化测试
2024-03-13

Java8中怎么利用Stream实现函数式接口

这期内容当中小编将会给大家带来有关Java8中怎么利用Stream实现函数式接口,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。函数式接口什么是函数式接口?简单来说就是只有一个抽象函数的接口。为了使得函数式
2023-06-16

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录