Java - Drools 验证对象值列表

标签 java drools rules rule-engine

我想要我的 Drool 通用型。
这是我的 Java 类结构:

public class RulesModel {
private String field;
private List<Object> values;
public String getField() {
    return field;
}
public void setField(String field) {
    this.field = field;
}
public List<Object> getValues() {
    return values;
}
public void setValues(List<Object> values) {
    this.values = values;
}
}

我希望我的规则如下:

rule "sample"
when
    $rule : RulesModel( field == "source", value == "facebook", value == "youtube", value != "instagram" )  
then
    // actions
end 

如何验证 Drools 中的列表对象?

最佳答案

您正在寻找的是包含不包含运算符:

(假设您的 RuleModel 包含 Strings 作为值)

rule "sample"
when
    $rule : RulesModel( field == "source", values contains "facebook", values contains "youtube", value not contains "instagram" )  
then
    // actions
end 

您可以在此处获取有关 Drools 支持的运算符的更多信息:https://docs.jboss.org/drools/release/7.37.0.Final/drools-docs/html_single/index.html#drl-operators-ref_drl-rules

希望对你有帮助

关于Java - Drools 验证对象值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61847724/

相关文章:

android - 允许除一个 child 以外的所有 child 读写

java - Drools 7 DRL 文件中的访问事实

java - 将事实插入工作内存的时间根据规则库大小增加

java - 什么是 org.xml.sax.SAXException : Scanner State 24 not Recognized?

java - 从部署在 Apache Tomcat 上的 Java 代码执行命令

java - Drools - 比较不涉及主要数据类型的字段的最佳实践

java - DROOLS 如果条件之一不匹配则停止评估

delphi - 开发 Delphi Windows 7 应用程序的规则

java - 我的自定义 "paste from clipboard" Action

java - G1 比 Java 7 上的默认垃圾收集器慢