我有一个POJO,我想检查它是否存在于POJO列表中。我可以使用以下规则进行此操作:
when
$pojo:Pojo() and
$pojoLs:PojoLS() and
$test:PojoLS() from collect (Pojo(this.equals($pojo)) from $pojoLs)
then
System.out.println($test.size());
此规则匹配,但是我现在想将POJO和POJO列表包装在具有键(字符串)和值(POJO或POJO列表)的容器中。我将命名包装类PojoWR和PojoLSWR。以下是与上述相同的规则,但是使用了包装器:
when
$pojo:PojoWR("pojo.key";) and
$pojoLs:PojoLSWR("pojols.key";) and
$test:PojoLS() from collect (Pojo(this.equals($pojo.value)) from $pojoLs.value)
then
System.out.println($test.size());
唯一的区别是,我使用包装器中的键匹配我的POJO和POJO列表,并使用.value从包装器访问我的值,否则逻辑与我所看到的相同。但是,列表不会在使用包装器的规则中填充(然后,在$ test.size()的情况下,该块将打印0,而在没有包装器的规则中,它应打印1)。