Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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
声明新类型JBossDrools_Jboss_Field_Drools_Declare - Fatal编程技术网

声明新类型JBossDrools

声明新类型JBossDrools,jboss,field,drools,declare,Jboss,Field,Drools,Declare,我需要在我的drl中声明一个新类型,如下面的示例所示 package com.sample import com.sample.DroolsTest.Message; declare Variavel valor : Integer end rule "Hello World" when m : Message( status == Message.HELLO, myMessage : message ) ----->v:Variavel()问题在

我需要在我的drl中声明一个新类型,如下面的示例所示

package com.sample


import com.sample.DroolsTest.Message;

declare Variavel
    valor : Integer
end



rule "Hello World"
    when

        m : Message( status == Message.HELLO, myMessage : message )
----->v:Variavel()问题在这里,变量没有实例化

    then


        System.out.println( myMessage );
        m.setMessage( "Goodbye cruel world" );
        m.setStatus( Message.GOODBYE );
        update( m );
end

rule "GoodBye"
    when
        Message( status == Message.GOODBYE, myMessage : message )
    then
        System.out.println( myMessage );

end
我的问题是:我想使用变量而不使用此代码

FactType personType = kbase.getFactType( "com.sample","Variavel" );
Object test = personType.newInstance();
                ksession.insert(test);

当我触发规则时,可能会使用声明的字段而不使用此代码,就像静态字段一样?

Drools中的类型声明就像在Java中声明类一样。这里有类型,但没有实例。您可以做的是让更高优先级的规则实例化并将其作为事实插入,而不是让应用程序执行。例如:


声明变量
勇气:整数
结束
规则“创建变量”
突出100
什么时候
然后
插入(新变量());
结束
规则“你好,世界”
什么时候
m:Message(状态==Message.HELLO,myMessage:Message)
v:Variavel()
然后
//做点什么
结束

Drools中的类型声明类似于Java中的类声明。这里有类型,但没有实例。您可以做的是让更高优先级的规则实例化并将其作为事实插入,而不是让应用程序执行。例如:


声明变量
勇气:整数
结束
规则“创建变量”
突出100
什么时候
然后
插入(新变量());
结束
规则“你好,世界”
什么时候
m:Message(状态==Message.HELLO,myMessage:Message)
v:Variavel()
然后
//做点什么
结束