gpt4 book ai didi

java - 对相同类型且具有关系的多个对象使用 drools

转载 作者:行者123 更新时间:2023-12-01 12:00:02 24 4
gpt4 key购买 nike

嘿,我有一个使用 drools 需要解决的问题-

我们有一个对象-

Class Product{
String name;
double cost;
double margin;
double sellPrice;
}

我们有一个 Product 对象 - P1,它可以有多个 Product 类型的父级/关系,比如 P1、P2、P3...等等

现在规则必须是这样的 -

rule when: P1.cost<100
rule then: P1.sellPrice=P2.sellPrice+P3.sellPrice+.....

我正在尝试找出一种方法/设计来实现这一目标。

最佳答案

我认为您可以使用关键字collect,它允许您对给定来源的收集进行推理,在这种情况下,每个产品都插入到工作内存中(正在评估的产品较少)

我希望这段代码可以指导您:

    rule "Sum sellPrice's property Product if Product's cost < 100"
no-loop
when
$p : Product(cost<100)
$items : java.util.List(size > 0) //execute rule if list.size > 0
from collect( Product(name != $p.name) ) //create list from each Product less this ($p)
then
double totalSellPrice = 0;
Product p = null;
for(Object item: $items)
{
p = (Product)item;
totalSellPrice += p.getSellPrice();
}
//finally modify product who is being evaluated
modify($p){setSellPrice(totalSellPrice)};
end

这篇文章解释了谁收集(和积累)作品http://blog.athico.com/2007/06/chained-from-accumulate-collect.html

关于java - 对相同类型且具有关系的多个对象使用 drools,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28043306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com