2017-04-24 9 views
0

配列や値の配列を持つ配列があります。 私はこの形式のルールを書きたい:Droolsルールの記述方法配列やリスト内のいくつかの値を検証する

rule "listRule" 

when 
$first: from list1() and $first!= "a" and $first!="b" 
$second: from list1() and $second!="c" and $second != "z" 
then 
System.out.println(" this works!") 

end 

目的は、リストや配列が2つの以上のオブジェクトがある場合(最初の$を、$二など)それぞれが満足していることを評価することができることですそれらの異なる状態。これは配列またはリストにすることができます。

答えて

1

複数のString[]またはList<String>オブジェクトを挿入することは、これらのオブジェクトを識別できないため、ほとんど間違いです。しかし、ここに方法があります:

rule "listRule" 
when 
    $list: ArrayList() 
    $s1: String(toString != "a" && != "b") from $list 
    $s2: String(this != $s1, toString !="c" && != "z") from $list 
then 
    System.out.println("Strings: " + $s1 + " - " + $s2); 
end 
+0

私のために働いた。答えに感謝します。私はそこかそこにいることができますか? $ list または$ s2:String(this!= $ s1、toString!= "c" &&!= "z")から$ s1:String(toString!= "a" &&!= "b"リスト –

+0

はい。両方のパターンを括弧で囲みます。 ---しかし、それは同じ効果がより簡単な方法で達成できるので意味がありません。 – laune

関連する問題