如何在m子4的JAVA SDK操作中将函数作为参数传递

问题描述

我正在尝试使用Mule's Java SDK构建自定义连接器。基本上,我想做的是向当前缓存范围添加功能,以使开发人员能够添加一个条件,根据该条件,范围应根据最终结果(以及其他一些功能)在缓存中存储某些内容。这就是我主要坚持的目标。例如,如果结果不为空,则仅存储数据库查询响应。 为此,我正在考虑将一个函数作为参数传递给操作,该操作将返回一个布尔值,并且根据结果,该操作会将结果存储在缓存中。该操作的最终函数定义如下所示

public void cache(String key,Function(or something else?) storeInCache,Chain connectors,CompletionCallback<Object,Object> callback) {}

是否有可能做我想做的事情。我愿意接受任何建议。可能还有其他替代方法吗?

谢谢

解决方法

我不确定您是否可以“扩展”诸如缓存范围之类的内置组件。也许您可以只为该参数使用一个表达式。如果这不适用于您的用例,则其他方法可以使用dynamic configuration,也可以将storeInCache定义为ParameterResolver<>,以推迟执行表达式。