2016-11-11 42 views
0

在这里,我有一些代码Drools的访问ArrayList的

class Person{ 
    private String firstName; 
    private ArrayList<String> hobbies; 

    /* setter-getter */ 
} 

我想访问某个特定的人的所有爱好中滴料。 EX-(这DOWS不行)

$p: Person(firstName=="Harish") 
$hobbies: ArrayList() from p.hobbies 

什么是这样做的正确的语法?

回答

0

正如您已宣布ArrayList<String> hobbies几乎可以肯定,您没有ArrayList作为hobbies的元素。

要访问一个字段是一个列表,只需绑定一个变量:

rule h1 
when 
    $p: Person(firstName=="Harish", $hobbies: hobbies) 
then 
    System.out.println("Harish has " + $hobbies.size() + " hobbies."); 
end 

要访问的每一个爱好,每个点火一次:

rule h2 
when 
    $p: Person(firstName=="Harish") 
    $h: String() from $p.hobbies 
then 
    System.out.println("Harish has " + $h + " as a hobby."); 
end