繁体   English   中英

流口水如何获取列表中的最后一个元素

[英]Drools how to get the last element in the list

这是我的规则:

rule "rahultest" 
salience 200
no-loop true
when
    $parentObject : parentObject()
    $child : ChildObject() from $parentObject.childs //here I want to put the code like 
then


end

我只想对最后一个元素运行此规则,我该怎么做。

假设孩子是一个列表,不是null也不为空:

rule "rahultest" 
when
    $parentObject : parentObject()
    $child : ChildObject()
        from $parentObject.getChilds().get( $parentObject.getChilds().getSize() - 1 )
then
 ...
end

您可以将getter getLastChild()添加到parentObject,这将在某种程度上简化此过程。

rule "Last Activity"

    when
        $inst:Instance(  )
        $ev:Event( activity=="Verify Exit" )
          from $inst.getEvents().get($inst.getEvents().size() - 1 )
    then 
        SendMessage.ReportMessage(kcontext,$inst);      
    end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM