步骤1:创建一个Map对象 Map<String,Function<Integer,Integer>>functionMap=newHashMap<>(); 1. 步骤2:将函数接口和对应的key值存储在Map中 functionMap.put("add",(a)->a+1);functionMap.put("subtract",(a)->a-1); 1. 2. 步骤3:根据key值获取对应的函数接口 Function<Integer,Integer>addFunction=...
上代码: @ServicepublicclassQueryGrantTypeService{@AutowiredprivateGrantTypeSerive grantTypeSerive;privateMap<String,Function<String,String>>grantTypeMap=newHashMap<>();/** * 初始化业务分派逻辑,代替了if-else部分 * key: 优惠券类型 * value: lambda表达式,最终会获得该优惠券的发放方式 */@PostConstructp...
Map+函数式接口优化的方法,可以参考这里,讲解的比较细致:Map+函数式接口,“更完美” 的解决 if-else的问题 再写个活动Service 调用测试
(1)定义FunctionUtil工具类,结合Java8的Function函数式接口实现; (2)代码实现: publicclassFunctionUtil {//定义Map结构,key: 算法规则,value: 存放指定的计算方式privatestaticMap<String, Function<List<Integer>, Integer>> calculateMap =newHashMap<>();//静态代码块,初始化Map结构,定义指定算法规则的计算方式...
4.Map+函数式接口 感觉就是把ifelse的条件值变成了map的key 将上述策略类作为方法 @ServicepublicclassActivityStrategyService{publicStringdealSpringActivity(){return"春季活动逻辑";}publicStringdealSummerActivity(){return"夏季活动逻辑";}publicStringdealAutumnActivity(){return"秋季活动逻辑";}publicStringdealWinte...
函数式接口方法+Map 写法: //初始化 Map private Map<String,BiConsumer<ItemDto,Double>> map = new HashMap<>(); map.put("I",(a,b) -> setOne(a,b))); map.put("Ⅱ",(a,b) -> setTwo(a,b))); map.put("Ⅲ",(a,b) -> setThree(a,b))); map.put("Ⅳ",(a,b) -> setFo...
Map+函数式接口采用jdk 1.8的函数式编程的新特性,用来实现策略模式,更加简单,更加自由。 同样以旅行为例: publicclassStrategy{@AutowiredprivateTravelServicetravelService;//有返回值用Function接口,无返回值用Consumer接口privateMap<Integer,Consumer<String>>typeMap=newHashMap<>();@PostConstructpublicvoiddispatcherIni...
假设我们有一个包含 key-value 对的 Map,这些 key 是我们希望映射到特定位置的标识符。我们的目标是根据给定的 key,从 Map 中获取相应的 value,并将其显示在界面对应的位置。首先,我们需要定义一个函数式接口,用于实现特定的逻辑。这里,我们定义一个名为 `ValueRetriever` 的接口,它有一个名为...
第一步:在类上加入@AllArgsConstructor importlombok.AllArgsConstructor;@Slf4j@Configuration//@RequiredArgsConstructor@AllArgsConstructorpublicclassMqttServer{ 第二步: 给类创建一个私有map(相当于if分支) privateMap<String,Function<TopicStrategyMapDto,Boolean>>topicStrategyMap; ...
解决方案①策略模式 ②Map+Function函数式接口 1.策略模式解决if-else 策略模式是把 if语句里面的逻辑抽出来写成一个类,如果要修改某个逻辑的话, 仅修改一个具体的实现类的逻辑即可,实现可维护性同时增加可扩展性,问题就是:会增加很多冗余的类 示例代码如下:...