如果我嘗試訪問一個java bean的屬性與getter它給我的錯誤,而使用bean屬性直接正常工作。我知道直接使用bean屬性是documentation中所述的推薦方式。不過,在這種情況下,我更喜歡使用getter來達到某些特定的原因。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;
}
}
可以肯定的是,如果您使用bean屬性而不是顯式getter,則該規則可以很好地工作嗎?你的帖子不包括這個事實,它是否有你所指的屬性?你可以發佈嗎? – kaskelotti
@Jndy:事實確實如此。我已經添加了相關的java類。非常感謝這方面的任何幫助。 –