Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何迭代字符串列表并在drools中的RHS中更改它_Drools - Fatal编程技术网

如何迭代字符串列表并在drools中的RHS中更改它

如何迭代字符串列表并在drools中的RHS中更改它,drools,Drools,在我的用例中,我希望迭代字符串列表,并更改与LHS中的条件匹配的条目 这里是json { "name":[ "james", "harry", "potter", "james" ] } 这是我的drl when $names:Names($nameslist:name) $value:String() from $nameslist Boolean(booleanValue == true) from $v

在我的用例中,我希望迭代字符串列表,并更改与LHS中的条件匹配的条目

这里是json

{
  "name":[
    "james",
    "harry",
    "potter",
    "james"
    ]
}
这是我的drl

when        
    $names:Names($nameslist:name)
    $value:String()  from $nameslist
    Boolean(booleanValue == true) from $value == "james"
    then
    System.out.println("Pojo Welcome-------");
end
我的要求是我想更改列表,以便 我想把名字改成彼得。 我该怎么做

这是我的pojo课程

package pojo_Classes;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"name"
})
public class Assignment1News {

@JsonProperty("name")
private List<String> name = null;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();

@JsonProperty("name")
public List<String> getName() {
return name;
}

@JsonProperty("name")
public void setName(List<String> name) {
this.name = name;
}

@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}

@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}

}
包pojo_类;
导入java.util.HashMap;
导入java.util.List;
导入java.util.Map;
导入com.fasterxml.jackson.annotation.JsonAnyGetter;
导入com.fasterxml.jackson.annotation.JsonAnySetter;
导入com.fasterxml.jackson.annotation.JsonIgnore;
导入com.fasterxml.jackson.annotation.JsonInclude;
导入com.fasterxml.jackson.annotation.JsonProperty;
导入com.fasterxml.jackson.annotation.JsonPropertyOrder;
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
“姓名”
})
公共课堂作业1新闻{
@JsonProperty(“名称”)
私有列表名称=null;
@杰索尼奥雷
私有映射additionalProperties=new HashMap();
@JsonProperty(“名称”)
公共列表getName(){
返回名称;
}
@JsonProperty(“名称”)
公共无效集合名(列表名){
this.name=名称;
}
@JsonAnyGetter
公共映射getAdditionalProperties(){
返回此。附加属性;
}
@JSONANYSETER
public void setAdditionalProperty(字符串名称、对象值){
this.additionalProperties.put(名称、值);
}
}
我的要求是我想更改列表,以便 我想把名字改成彼得。
我应该怎么做呢?

没有必要避免一个简单的函数(或静态方法)来完成更新列表的简单工作

rule "james to peter"
when        
$names:Names($nlist:name contains "james")
then
  modify( $names ){ setName( replace( $nlist, "james", "peter" ) ); }
end

避免使用简单的函数(或静态方法)来完成更新列表的简单工作是没有意义的

rule "james to peter"
when        
$names:Names($nlist:name contains "james")
then
  modify( $names ){ setName( replace( $nlist, "james", "peter" ) ); }
end

例外情况与您的问题无关。第二条评论是报告的异常
找不到模块
看起来像是生成环境的问题
modify
可能需要来自jar的某些内容,但这些内容尚未包含在依赖项或类路径中。-您是否将
replace
作为DRL功能实施?例外情况与您的问题无关。第二条评论是报告的异常
找不到模块
看起来像是生成环境的问题
modify
可能需要来自jar的某些内容,但这些内容尚未包含在依赖项或类路径中。-您是否将
replace
作为DRL功能实施?