2017-08-02 26 views
0

私はdroolsファイルからリストの特定のインデックスにアクセスしたいと思います。リストから特定のアイテムを取得する(drools)

例えば:私のPOJO(実際には)次のとおりです。

package com.test.demo; 
import java.util.List; 

public class Test { 

    private List<String> addresses; 
    private long id; 

    //Getters and Setters here 
} 

マイDRLルールは次のとおりです。

rule "ValidateTestBooleanCheck" 
    /* Iterating over a list */ 
    when Test($addresses : addresses) 
     String() from $addresses 
    then 
     System.out.println("Tested"); 
end 

私はこれで私のルールは、すべての有効な文字列のアドレスをテストしていることを取得します。私の要求は、アドレスのリストの2番目と4番目の要素に直接行き、リスト内のその特定の項目に関する規則を適用したいということです。

(私はあなたができる場合は、より良いアドレスの違いを反映するようにモデルを変更することをお勧めいたしますだろうが)あなたはこのような何かを行うことができ
+0

よくあるリストですので、ぜひアドレスを使用してください.get(1); 2番目の要素の場合 –

+1

このケースにはカスタムフィールドを使用できます。 –

+0

@SławomirCzaja、4番目の要素についてはどうですか? –

答えて

0

rule "Sample" 
when 
    Test($addresses : addresses) 
    $a1: String() from $addresses.get(1) 
    $a2: String() from $addresses.get(3) 
then 
    System.out.println("Second Address: "+$a1); 
    System.out.println("Fourth Address: "+$a2); 
end 

これは、すべてあなたのTestのオブジェクトは、少なくとも4を持っていると仮定していますアドレス。

希望します。

関連する問題