当前位置: 首页 > 知识库问答 >
问题:

Drools返回规则列表

杜烨伟
2023-03-14

我是口水新手,我成功地创建了一个使用创建的规则的工作应用程序。我有一个简单的类Message,其中包含两个变量type语言

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

如果用户为类型或语言插入一些奇怪的值,我有一个返回错误的特定规则。但最重要的是,我想知道是否可以返回插入规则中的所有可能变量的列表:例如string1string2

共有1个答案

宋涵忍
2023-03-14

我猜你是说“字符串文字”而不是变量?

有一个类用于表示规则;具有用于模式和约束的类。但这些是“不稳定的”,通常不建议将应用程序基于它们。

如果您有多条规则来捕获一些错误的消息组合。类型和消息。语言,您可以考虑根据

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" )
 类似资料:
  • 我是个流口水的新手。我创建了以下对象: 和a*。包含规则的drl文件: 在Postman中,我试图用以下主体调用规则: 我得到了以下答案: 问题是,我的值为空,而不是我期望作为响应的对象。server.log是空的,我看不出有什么问题。请你帮我。 非常感谢你。

  • 我正在享受Optaplanner的旅程。Java不是我的“母语”,但令我惊讶的是(陡峭?)Optaplanner学习曲线 到目前为止,我得到了什么:我已经制作了一个带有必要类的项目。为了回答我的问题,我将简化为:一个类、一个类、一个类和类,我想在其中获得我完美的Opta计划时间表。 我的员工类有一个变量

  • 我的问题是: 在Drools规则中,有没有一种方法可以拦截“成功”事件?为了更好地解释。。。有一种方法可以在规则的所有条件都为真时调用侦听器? 注意:我不想设置一个全局对象(在会话上)来管理规则的“然后”子句中的这个条件。 我正在寻找一个已经在Drools上实现的解决方案 规则示例

  • 我在试着处理drools中的列表。我正在传递一个请求,其中包含一个购买列表。我想做几个规则,包括检查大小是否正确,然后如果所有元素都相同,如果所有购买都经过授权。。。我有以下代码,但在使用列表时遇到了问题。这是正确的方法吗?尤其是在检查尺寸时?

  • 我正在向drools规则引擎插入数据,但我无法理解它是如何处理插入的数据的。插入数据的代码是: