1 つ以上の条件が満たされたときに起動する必要があるルールを作成しています。ルールは次のようになります。
rule "Demo Rule"
when
$data : Data (val == 1 || val == 2)
then
System.out.println($data);
end
2 つの一致する Data オブジェクト (val 1 と val 2) を持つルールのテストがあります。print ステートメントに到達すると、ルールは正しく実行されます。しかし、$data を解析して個々の一致する Data オブジェクトにアクセスする方法が見つかりません。println の結果は次のとおりです。
custom.package.Data< val: 1, text:'Test1' >
custom.package.Data< val: 2, text:'Test2' >
したがって、複数のエントリが存在することがわかります。しかし、配列 ($data[0]) または $data$1 または私が考えることができるすべてのものとして呼び出そうとすると、Drools による解析エラーが発生します ($data は Data オブジェクトであり、配列、リスト、またはその他の反復可能オブジェクトではないと不平を言います)。 .