2017-08-02 2 views
0

Je souhaite accéder à un index particulier d'une liste à partir d'un fichier bave.Obtention d'un élément spécifique à partir d'une liste (bave)

par exemple: Mon POJO (fait) est:

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

public class Test { 

    private List<String> addresses; 
    private long id; 

    //Getters and Setters here 
} 

Ma règle DRL est:

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

je reçois que dans cette ma règle est le test pour toutes les adresses de chaîne valides. Ma condition cependant est que je veux aller directement aux deuxième et quatrième éléments de la liste d'adresses et appliquer une règle sur cet article particulier dans la liste.

+0

bien c'est la liste donc utilisez juste addresses.get (1); pour le deuxième élément –

+1

Vous pouvez utiliser un champ personnalisé pour ce cas. –

+0

@ SławomirCzaja, que diriez-vous du quatrième élément aussi? –

Répondre

0

Vous pouvez faire quelque chose comme ça (même si je vous recommande de changer votre modèle si vous pouvez mieux refléter les différences entre les adresses):

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 

Ceci est l'hypothèse où tous vos Test objets ont au moins 4 adresses.

Espérons que ça aide,