getter로 java bean의 속성에 접근하려고하면 bean 속성을 사용하는 것이 제대로 작동하지만 오류가 발생합니다. documentation에 설명 된대로 콩 속성을 직접 사용하는 것이 좋습니다. 그러나 나는이 경우 몇 가지 구체적인 이유로 게터를 사용하는 것을 선호한다.getter를 사용하여 bean 속성에 접근하기
다음은 규칙 파일과 오류입니다. 내가 왜 이상한 행동을하는지에 대한 단서를 고맙게 생각합니다.
규칙 파일
package test.rules
import java.lang.Math;
import test.MatFact;
import test.MatHotelAlternative;
import test.MatHotelItem;
dialect "mvel"
rule "0"
salience 0
when
$item: MatHotelItem()
$alt: MatHotelAlternative(processed == false
&& (getStarRating() == "*")
)
then
modify ($alt) {
// some actions here
}
end
오류
[16,26]: [ERR 101] Line 16:26 no viable alternative at input ')' in rule "0" in pattern MatHotelAlternative
[16,28]: [ERR 102] Line 16:28 mismatched input '==' expecting ')' in rule "0" in pattern MatHotelAlternative
[17,1]: [ERR 102] Line 17:1 mismatched input ')' expecting 'then' in rule "0"
관련 클래스
MatHotelAlternative
public class MatHotelAlternative extends MatItemAlternative<Hotel>
{
public String getStarRating()
{
return alternative.getStarRating();
}
}
MatItemAlternative
이 작동합니다public abstract class MatItemAlternative<T extends HolidayItem>
{
private boolean processed;
protected T alternative;
public MatItemAlternative(T alternative)
{
this.alternative = alternative;
}
public boolean isProcessed()
{
return processed;
}
public void setProcessed(boolean processed)
{
this.processed = processed;
}
}
명시 적 getter가 아닌 bean 속성을 사용하면 규칙이 완벽하게 작동합니까? 귀하의 게시물은 사실을 포함하지 않으며 귀하가 언급 한 속성을 가지고 있습니까? 그뿐 아니라 게시 할 수 있습니까? – kaskelotti
@JAndy : 이것은 사실입니다. 관련 자바 클래스를 추가했습니다. 이것에 대해 많은 도움을 주실 수 있을까요? –