我使用流口水做一些逻辑,DRL就是这样。我的问题是,当我添加“ rules:Rules()”时,循环将首先在“年轻”中循环播放,直到年龄大于19岁,但是如果我删除“ rules:Rules()”,则仅在年轻时循环一次。有人可以告诉我为什么吗?
rule "young"
when
rules:Rules()
person:Person(Person.age< 19)
then
person.age+=1
System.out.println("young");
end
rule "adult"
when
rules:Rules()
person:Person(Person.age>= 19)
then
person.age+=1
System.out.println("adult");
end
答案 0 :(得分:0)
您应该使用modify
来让Drools知道您正在更改person
的状态。
rule "young-without-rules"
when
$person: Person(age < 19)
then
modify ($person) {
age = age+1
}
System.out.println("young");
end