如何通过FEEL表达式在DMN决策表中匹配传入的Java枚举类型
你可以通过以下三种方案实现需求,均不需要修改现有Java代码的枚举传入逻辑:
方案1:修改DMN决策表输入列的表达式(最简便)
无需调整输入参数的类型,直接在决策表对应输入列的输入表达式字段填写Foo.name(),将输入类型设置为string,后续规则里直接写字符串匹配值"ONE"/"TWO"即可生效。
原理:枚举实例的
name()方法会返回枚举项的字符串字面量,相当于在DMN执行阶段主动完成枚举到字符串的转换,无需额外编写转换代码。
方案2:在DMN模型中定义对齐的枚举类型
在DMN模型内新增一个自定义枚举类型,允许值设置为ONE、TWO,将决策表对应输入列的类型指定为该自定义枚举类型,规则里直接写ONE/TWO作为匹配值即可。DMN引擎会自动完成Java枚举实例到DMN自定义枚举的映射,不需要额外转换逻辑。
方案3:直接匹配枚举实例
如果不想做字符串转换,可在DMN模型的导入配置中添加Foo枚举类的全限定名,决策表输入列的表达式保持为Foo,规则匹配值直接写Foo.ONE/Foo.TWO即可完成实例级别的匹配。
内容的提问来源于stack exchange,提问作者user17127907
相关产品推荐
相关产品推荐

