首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >流口水-无法分析表达

流口水-无法分析表达
EN

Stack Overflow用户
提问于 2013-08-04 17:08:59
回答 2查看 9.5K关注 0票数 0

我在DRL文件中定义了一些规则,这是我创建drl文件的第一个程序。我得到的错误“无法分析表达式”.Here是我的代码:

代码语言:javascript
复制
package rules

import com.sample.Applicant.appli;

rule "Is of valid age"

when

    $a : appli ( age < 18 ) // appli is my class name
                            // age is a variable in that class

then

    $a.setValid( false ); // setValid is a method of appli

end

并得到错误:

代码语言:javascript
复制
Unable to Analyse Expression age < 18:

[Error: unable to resolve method using strict-mode: com.sample.Applicant$appli.age()]

[Near : {... age < 18 ....}]

         ^
[Line: 16, Column: 4] : [Rule name='Is of valid age']
EN

回答 2

Stack Overflow用户

发布于 2013-08-07 06:34:57

确保在类appli中,age要么是公共的,要么有一个公共getAge()方法。

票数 2
EN

Stack Overflow用户

发布于 2016-09-06 20:40:47

甚至我在验证Drools 6.4.0最终中的DRL文件时,也得到了类似的错误:无法分析表达式……。我检查了数据对象、它的字段、setters和getter的访问说明符。一切看起来都还好。然后,我保存了我的数据对象,并返回到DRL文件并进行验证。突然,上面的错误消失了,我看到了消息‘成功验证’。我的错误是,虽然我在Drools中创建了数据对象,但我忘了通过单击“ save ”按钮来保存它。

因此,我建议您,如果您100%确信您的数据对象和DRL文件是正确的,请先保存这些文件,然后再次验证DRL文件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18045403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档