drools - 如何使用 Drools (mvel) 将元素添加到数组
问题描述
我需要使用 Drools 在现有数组中插入一个新值。我的例子:
rule "insert new address"
dialect "java"
when
$data : Data( source.address != null)
then
Address address = (Address) $data.source.address
System.out.println("Element: "+address );
$data.target.addressList.add(address);
end
发生的错误是这样的:规则中“插入新地址”的异常执行结果:[错误:$data.target.addressList.add(address): null]
编辑:添加模型
public class Data {
private Source source;
private Client target;
}
public class Source {
...
private Address address;
}
public class Client {
...
private List<Address> addressList;
}
解决方案
回答标题中的问题,即如何将元素添加到数组中——答案基本上是“与 Java 中的方法相同”。
要回答您实际提出的没有数组的问题,您的错误实际上是 NullPointerException,或另一个指示该字段无法修改的指示符(例如不可变列表。)
这个:
Error: $data.target.addressList.add(address): null]
表示$data.target
or$data.target.addressList
为 null,或者可能$data.target.addressList
是不可变列表。
确保任何“目标”都已被初始化,并且其“地址列表”也被初始化为可变列表类型。
推荐阅读
- linux - 有没有办法在 ELF 二进制文件开始执行时自动设置环境变量?
- python - 找到的单元格名称与 Google 表格中的不同
- python - 在具有上下文背景地图的 GeoPanda 地图上无法使用颜色代码点
- powershell - Powershell 在 foreach 循环中的输出上添加标头
- swift - 类 'ViewController' 没有初始化器 | 迅速
- python - 如何将字符串列表列表转换为字符串列表列表
- elixir - 无法使用自己的 API 从同一模块调用 Genserver 中的 Handle Cast 函数
- c# - MaxLengthAttribute 的单元测试失败
- python - 数据未提交到 Flask 应用程序中的数据库
- r - 在因子转换中是否缺少创建新输出的步骤?