java - Drools - 检查列表中是否存在/包含字符串<String>

标签 java scala drools

我需要创建一个规则来检查列表[String]中是否存在字符串的一部分。有什么办法可以做到吗?

我正在尝试使用包含,但它不起作用。

rule "New Assistance"
    when
        $room:Room($tags : tags)
        //$room:Room(tags contains "protocol")
        $value:String() from $tags
        //Boolean(booleanValue == true) from $value == "protocol"
        Boolean(booleanValue == true) from $value.contains("protocol")
    then
        System.out.println("Error");
end

这是我的代码

...
val room = new Room(null, List[User](), List[Message](message), 
            new Date, null, List[String]("protocol"))
kieSession.insert(room)
kieSession.fireAllRules()
....

谢谢!

//测试java

import java.util.ArrayList;
import java.util.List;

public class Test { 
    public static void main(String[] args) {    
        List<String> tags = new ArrayList<>();
        tags.add("protocol");
        Room room = new Room(tags);
        System.out.println(room.tags.contains("protocol") );        
    }   
}

class Room {        
    public List<String> tags;

    public Room(List<String> tags){
        this.tags = tags;
    }   
}

//测试 scala

val room = new Room(null, List[User](), List[Message](message), 
            new Date, null, List[String]("protocol"))

var xx = room.tags.contains("protocol")

两者都返回true

最佳答案

rule "New Assistance"
when
    $room:Room($tags : tags contains "protocol")
then
    System.out.println("Error");
end

关于java - Drools - 检查列表中是否存在/包含字符串<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28326953/

相关文章:

java - Drools 日志记录低于配置级别

java - 具有完整 GIF 支持的 GIF 文件创建库

java - Android 1.5 中的 String[].clear

java - 如何在属性文件中定义对象数组并从 Java 程序中读取

java - 在 PrintWriter 中,为什么 print() 函数不自动刷新?

scala - 如何从 HList 创建镜头的 HList

scala - 如何为 SBT 设置本地代理存储库?

scala - 使用一对 (K,Collection[V]) 时 Spark : RDD. saveAsTextFile

java - 流口水;在另一台机器上执行时无法加载pom.properties

ruby-on-rails - : Drools (www. drools.org 的 Ruby 替代品)一个业务逻辑集成平台