多平台统一管理软件接口,如何实现多平台统一管理软件接口
228
2023-04-22
基于Java8 函数式接口理解及测试
1. 函数式接口的理解
根据重构的思想,需要把容易变化的模块进行抽象并封装起来,从这个点来看,java8新引入的函数式接口就是基于这个思想进行设计的。
2. 函数式接口定义
2.1 自定义如下
需要FunctionalInterface关键字显示声明:
@FunctionalInterface
public interface AppleInterface {
public void test();
}
2.2 系统预定义
java.util.function.Consumer;
java.util.funhttp://ction.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方法,不接收任何参数,也没有任何返回
@FunctionalInterface
public interface AppleInterface {
public void test();
}
4.3 测试自定义函数式接口
@Test
public void DefineFunctionInterface(){
//自定义函数式接口
AppleInterface at=()->System.out.println("define FunctionInterface AppleInterface.");
at.test();
}
至此,就完成一个很简单的函数式接口的定义和调用
4.4 系统预定义函数式接口
Consumer
@Test
public void ConsumerTest(){
Consumer
List
new Apple("green",100));
ConsumerApple(apps,consumer);
}
public void ConsumerApple(List
for(Apple app:apps){
c.accept(app);
}
}
Supplier
@TestboZboWn
public void SupplierTest(){
Supplier
Apple app=supplier.get();
System.out.println(app.getColor()+","+app.getWeight());
}
Predicate
@Test
public void PredicateTest(){
//系统预定义函数式接口测试
Predicate
Predicate
List
new Apple("green",100));
filterApple(apps,p1);//筛选重量大于90g的苹果
filterApple(apps,p2);//筛选蓝色的苹果
}
public void filterApple(List
for(Apple app:apps){
if(p.test(app)){
System.out.println(app.getColor()+","+app.getWeight());
}
}
}
Function
@Test
public void FunctionTest(){
Function
Apple app=function.apply("red");
System.out.println(app.getColor()+","+app.getWeight());
app=function.apply("green");
System.out.println(app.getColor()+","+app.getWeight());
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~