2016-12-26 66 views
0

我定义了一个带有静态字段的类,我想访问规则左边的字段。可能吗?访问LHS中的静态字段

这里是类:

package cep.model; 

public class Events { 
    public static final int A = 1; 
    public static final int B = 2; 
    public static int getA() { 
     return A; 
    } 

    public static int getB() { 
     return B; 
    } 
} 

和规则:

package cep.drl; 
dialect "mvel" 
import cep.Event; 
import cep.model.Events; 

declare Event 
@role(event) 
@expires(20s) 
end 

//A & B 
rule "r001" 
no-loop 
    when 
    $a : Event(typeId == Events.A) 
    and $b : Event(typeId == Events.B) 
    then 
end 

,并使用编译滴料后插件:

Unable to Analyse Expression typeId == Events.A: 
[Error: unable to resolve method using strict-mode: cep$Event.Events()] 
[Near : {... typeId == Events.A ....}] 
        ^
[Line: 15, Column: 4] : [Rule name='r001'] 


Unable to Analyse Expression typeId == Events.B: 
[Error: unable to resolve method using strict-mode: cep$Event.Events()] 
[Near : {... typeId == Events.B ....}] 
        ^
[Line: 16, Column: 8] : [Rule name='r001'] 

回答

0

我想你必须把规则以这种方式,replace == to:对事件做出约束.A

rule "r001" 
no-loop 
    when 
    $a : Event(typeId : Events.A) 
    and $b : Event(typeId == Events.B) 
    then 
end 
相关问题