首页 > 其他分享 >函数式接口

函数式接口

时间:2023-01-05 18:57:00浏览次数:47  
标签:map 函数 get DBA 接口 context Supplier

1.函数式接口

只能含有1个方法的接口,入参可以有多个,出参可有可无

定义接口

@FunctionalInterface
public interface ReceiverGetter {
	List<Receiver> apply(ResGroup resGroup);
}

使用策略模式使用接口

Map<String,ReceiverGetter> map = Maps.newHashMap();
map.put("DBA",resgroup -> return Lists.newArrayList())

调用策略模式中定义的函数方法去执行

map.get("DBA").apply(resGroup)

2.Supplier接口

java.util.function.Supplier 仅包含一个无参的方法 T get(),用于获取一个泛型参数指定的数据

定义一个Supplier接口的通过无参方法返回字符串helloworld

Supplier<String> supplier = new Supplier<String>(){
	@Override
	public String get(){
		return "helloworld"
	}

}

策略模式使用Supplier接口

Map<String,String> map = Maps.newHashMap();
map.put("DBA",() -> return "helloworld")

使用策略模式

String ss = map.get("DBA").get()

3.Consumer接口

Consumer接口正好相反,不是生产一个数据,而是消费一个数据
常用与传递参数进行处理.没有返回值

策略模式中,value值是Consumer接口,Consumer接口是处理ProcessContext<NotificationModel>>这种数据类型
Map<ResGroupType, Consumer<ProcessContext<NotificationModel>>> rewriteActions = new ImmutableMap.Builder<ResGroupType,Consumer<ProcessContext<NotificationModel>>>()
            .put(ResGroupType.CONFIG_RES_GROUP,context -> rewriteConfigResGroupSetting(context))
            .put(ResGroupType.VIRTUAL_RES_GROUP,context -> rewriteVirtualResGroupSetting(context))
            .build();

处理

rewriteActions.get(resGroupType).accept(context);

标签:map,函数,get,DBA,接口,context,Supplier
From: https://www.cnblogs.com/PythonOrg/p/17028616.html

相关文章

  • C++静态类成员变量和成员函数
    头文件calculateBufferSize.h#ifndefCALCULATE_BUFFER_SIZE#defineCALCULATE_BUFFER_SIZE#include<mutex>#include<memory>#include<iostream>#include<glm/g......
  • 函数
    函数"""先定义后调用(函数名+括号)函数名的命名规则跟变量名一样函数在定义的时候只检测函数体语法,不执行函数体代码函数名遇到括号会立即执行函数体代码"""#定......
  • 更优雅的计算方法或接口耗时
    一、背景开发时,记录某方法或任务的执行时间,或者一段代码的执行时间,如果使用System.currentTimeMillis(),很麻烦且不直观。spring-framework和apache-common包,都提供了Stop......
  • Python 函数
    一.函数的初识函数:以功能(完成一件事)为导向,登录,注册,len一个函数就是一个功能。随调随用函数的优势1.减少了代码的重复性。2.增强了代码的可读性 二.函数的结构和调用......
  • C#调用VC的DLL的接口函数参数类型转换一览表
    handle---------IntPtrhwnd-----------IntPtrchar*----------stringint*-----------refintint&-----------refintvoid*----------IntPtrunsignedchar*-----refbyt......
  • 接口测试常见面试题
    为什么要做接口测试?如下图一个提现功能比如这个输入框,平常拿到这个web页面,会对输入框做用例设计:输入一个负数(如:-100),点提交输入金额为0(如:0),点提交输入金额为0-100的数......
  • 浅谈多项式与生成函数
    本文源码约34k,可能需要一段时间加载\(\LaTeX\)。首先需要注意的是,本文中将不会涉及具体的程式化求解,即与代码实现无关。同样的,阅读本文需要你掌握基础的快速傅里叶变换......
  • gcc内置原子操作__sync_系列函数解析
    gcc内置原子操作__sync_系列函数解析gcc4.1.2版本之后,对X86或X86_64支持内置原子操作。就是说,不需要引入第三方库(如pthread)的锁保护,即可对1、2、4、8字节的数值或指针类......
  • 箭头函数与promise
    console.log("普通函数方式");vararr1=[1,2,3,4,5];arr1.forEach(function(e){console.log(e);});console.log("箭头函数......
  • 为什么 Python 中没有 main() 函数?
    在本文中,我们将学习为什么Python中没有main()函数。毫无疑问,Python没有所谓的main函数,但是,关于互联网经常引用“Python的主要功能”和“建议编写主要功能。"它们的目......