상황이 쉽습니다. 나는 규칙 파일 생성 :Drools : String 전역 변수의 이상한 동작
package org.domain.rules;
dialect "mvel"
import eu.ohim.fsp.core.configuration.domain.xsd.Section;
global java.lang.String sectionName;
rule "rule 1"
salience 1000
when
Section($name : nameOfTheSection)
eval(sectionName == null)
then
System.out.println("Section: " + $name+ "("+$name.length()+")");
System.out.println("Section Name: " + sectionName + "("+sectionName.length()+")");
System.out.println("Mark Details: " + sectionName.equals(null));
end
을 그리고 규칙을 발사하기 전에 유효한 coreName
와 섹션 객체와 전역 추가 :
public void fireInserted(Section section1) {
kstateful.insert(section1);
kstateful.setGlobal("sectionName", new String("markudetails"));
kstateful.fireAllRules();
}
결과는 다음과 같습니다
Section: markudetails(12)
Section Name: markudetails(12)
Mark Details: false
질문을 : 어떻게 가능할까요? 부분이 null이고 인 경우 부분이 null이 아닙니다!
우선 : 감사합니다. 그러나 지식을 하나 이상의 섹션에 삽입하는 것에 대해 생각해보십시오. 규칙을 실행하기 전에 규칙에서 테스트 할 섹션을 선택하십시오. 어떻게 수행합니까? 이것이 전역 변수 sectionName의 의미입니다. –
코멘트에 대답하는 대신, 나는 나의 대답을 향상시켰다. –
네, 그 일을 생각하고있었습니다. 감사! –