Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “Drools决策表”;输入不匹配'&燃气轮机';“在规则中”;_Java_Drools - Fatal编程技术网

Java “Drools决策表”;输入不匹配'&燃气轮机';“在规则中”;

Java “Drools决策表”;输入不匹配'&燃气轮机';“在规则中”;,java,drools,Java,Drools,我正在使用Drools创建一个决策表,在使用大于字符(“>”)时遇到问题。 我在drools文档上看到你可以使用'>'和'| |持续时间| |五十| |二百| 问题是架构不允许我获取完整的对象。我只能从RemoteObject中获得一些字段。 所以我能做的是: Integer duration = getRemoteObjectDuration(); kSession.insert(duration); kSession.fireAllRules(); 其结果是: [6,2]: [ERR 1

我正在使用Drools创建一个决策表,在使用大于字符(“>”)时遇到问题。 我在drools文档上看到你可以使用'>'和'|
  • |持续时间|
  • |五十|
  • |二百|
  • 问题是架构不允许我获取完整的对象。我只能从
    RemoteObject
    中获得一些字段。 所以我能做的是:

    Integer duration = getRemoteObjectDuration();
    kSession.insert(duration);
    kSession.fireAllRules();
    
    其结果是:

    [6,2]: [ERR 102] Line 6:2 mismatched input '>' in rule "RuleTable_11"
    [14,2]: [ERR 102] Line 14:2 mismatched input '>' in rule "RuleTable_12"
    [0,0]: Parser returned a null Package
    
    我可以创建一个包含我的字段的虚拟对象,但必须有更好的方法。
    有人对此有想法吗?

    多亏了laune的评论,我终于成功了,但我必须创建一个自定义对象,其中只包含我需要的字段,并且我在下面的条件中写入了这个新类的名称。

    要匹配一个整数,可以使用如下规则

    rule findInt
    when
        Integer( $iv: intValue > 42 )
    then
        System.out.println( "got an Integer > 42: " + $iv );
    end
    
    因此,根据

    CONDITION
    Integer
    intValue >
    - ... -
    42
    
    当然,当工作内存中有几个整数对象浮动,无法识别是什么时,这注定会失败


    对于您的困境,我会创建一个阴影对象来保存远程对象的所有字段,而不是单独包装字段。

    您不能在条件下立即有一个空单元格。字段(!)
    duration
    所在的类的名称是什么?没有什么比得上“java端的整数”。除了在非常特殊的情况下,插入整数对象作为事实是没有用的。谢谢,我编辑了这篇文章。我试着使用一个只包含我的字段的虚拟对象,它可以工作,也许这是唯一的解决方案。。。