我是 drools 新手,我成功创建了一个使用创建的规则的工作应用程序。我有一个简单的类 Message
,其中包含两个变量 type
和 language
。
public class Message {
private String type;
private String language;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getLanguage() {
return language;
}
public void setLanguage(String language) {
this.language = language;
}
}
我的规则实现为
rule "test_auto"
when
message:Message (( type == 'string1' ) && ( language == 'string2' ) )
then
...
end
如果用户为类型或语言插入一些奇怪的值,我有一个返回错误的特定规则。但最重要的是,我想知道是否可以返回规则中插入的所有可能变量的列表:例如 string1
和 string2
。
最佳答案
我猜你的意思是“字符串文字”而不是变量?
有一个类来表示规则;具有模式和约束的类。但这些“不稳定”,通常不建议基于它们构建应用程序。
如果您有多个规则捕获 Message.type 和 Message.language 的某些错误组合,您可以考虑根据
插入事实class BadMessage {
String type;
String language;
}
所有这些“糟糕”的组合,以及单一规则
rule "catch bad messages"
when
$m: Message'( $t: type, $l: language )
BadMessage( type == $t, language == $l )
then
// handle $m as a "bad" message
顺便说一句,请注意,您可以将模式简单地写为
message: Message( type == "string1", language == "string2" )
关于java - Drools 返回规则列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25198641/