java - 如何避免处理程序返回 null 时流程停止?

标签 java spring-integration spring-integration-dsl

我有以下配置:

flow -> flow.handle(myHandler)
                .filter(p -> {
                    log.warn("FILTER IS INVOKED");
                    return p != null;
                }

如果 myHandler#handle 返回 null - 不会调用过滤器。

如何实现将空值传递给过滤器?

最佳答案

我想出了解决方法:在处理程序返回类型上创建包装器:

class Wrapper {
   Foo foo;
   ...
}

在这种情况下我可以执行以下操作:

flow -> flow.handle(myHandler)
                .filter(p -> {
                    log.warn("FILTER IS INVOKED");
                    return p.getFoo() != null;
                }

关于java - 如何避免处理程序返回 null 时流程停止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59047347/

相关文章:

java - PHP 对 Java 风格的类泛型有答案吗?

java - 如何让 Jersey 使用 Java 序列化?

spring - 使用轮询器测试直接 channel 和源的错误处理

spring-integration - 如何使用带有操作名称的spring integration java dsl调用soap webservice

java - 使用recyclerview和cardview在android Activity 中读取JSON数组

Java - 从反射中排除父类(super class)字段

java - Spring-boot 数据源提交问题

jakarta-ee - Spring Security - 'global-method-security' 不起作用

java - 使用spring集成dsl逐行读取文件

java - 使用 Spring Integration 5 上的 Spring Integration Java DSL 在入站 channel 上配置目录扫描器