easy-rules-core 版本为 3.2.0 的使用示例代码
时间: 2024-03-20 14:42:56 浏览: 56
好的,以下是 easy-rules-core 版本为 3.2.0 的使用示例代码:
首先,我们需要定义一个规则:
```java
public class AgeRule extends BasicRule {
private int age;
public AgeRule(int priority, int age) {
super("AgeRule", "Check if age is greater than 18", priority);
this.age = age;
}
@Override
public boolean evaluate(Facts facts) {
int age = facts.get("age");
return age > this.age;
}
@Override
public void execute(Facts facts) throws Exception {
System.out.println("Age is greater than 18");
}
}
```
在这个规则中,我们检查一个名为 "age" 的事实是否大于18。如果是,我们将打印一条消息。
接下来,我们需要创建一个规则引擎,并将规则添加到其中:
```java
Rules rules = new Rules();
rules.register(new AgeRule(1, 18));
RulesEngine rulesEngine = new DefaultRulesEngine();
rulesEngine.fire(rules, new Facts());
```
在这个例子中,我们创建了一个规则引擎并将 AgeRule 添加到其中。然后,我们使用一个空的 Facts 对象来启动规则引擎。
当我们运行这段代码时,因为我们提供的 "age" 事实的值为0,所以我们不会看到任何输出。
我们可以通过将 "age" 事实的值设置为20来测试规则:
```java
Rules rules = new Rules();
rules.register(new AgeRule(1, 18));
Facts facts = new Facts();
facts.put("age", 20);
RulesEngine rulesEngine = new DefaultRulesEngine();
rulesEngine.fire(rules, facts);
```
当我们运行这段代码时,我们将在控制台上看到 "Age is greater than 18" 的消息。
希望这个示例能够帮助你理解如何使用 easy-rules-core 版本为 3.2.0。
阅读全文