如何获取java中drl文件声明的枚举中的值
How to get the value in the enumeration declared in the drl file in java
我最近开始学习drools,当我在drl文件中声明一个枚举类型时,但是在java中,我不知道如何获取这个枚举的值,谁能帮助我?
首先:在 drools 文件中声明的枚举
declare enum OrderStatus
CREATED(0, "新创建"),
PAY(1, "已支付"),
RECEIVED(2, "已接收");
status: Integer;
desc: String;
end
其次:我想获取OrderStatus中PAY的值
// Get the declared fact type
FactType orderStatusFactType = kieBase.getFactType("rules", "OrderStatus");
后面不知道怎么写,有谁知道吗?
一般来说,你不会那样做。
如果在Java中需要,请在Java中声明。您可以像导入任何其他 class.
一样通过导入来引用 Java 枚举
OrderStatus.java:
package com.example;
public enum OrderStatus {
// ...
}
example.drl
import com.example.OrderStatus
rule "ExampleRule"
when
$order: Order( status == null )
then
modify($order) {
setStatus( OrderStatus.PAY )
}
end
因为已经是Java,可以在Java中正常导入引用了。
我最近开始学习drools,当我在drl文件中声明一个枚举类型时,但是在java中,我不知道如何获取这个枚举的值,谁能帮助我?
首先:在 drools 文件中声明的枚举
declare enum OrderStatus
CREATED(0, "新创建"),
PAY(1, "已支付"),
RECEIVED(2, "已接收");
status: Integer;
desc: String;
end
其次:我想获取OrderStatus中PAY的值
// Get the declared fact type
FactType orderStatusFactType = kieBase.getFactType("rules", "OrderStatus");
后面不知道怎么写,有谁知道吗?
一般来说,你不会那样做。
如果在Java中需要,请在Java中声明。您可以像导入任何其他 class.
一样通过导入来引用 Java 枚举OrderStatus.java:
package com.example;
public enum OrderStatus {
// ...
}
example.drl
import com.example.OrderStatus
rule "ExampleRule"
when
$order: Order( status == null )
then
modify($order) {
setStatus( OrderStatus.PAY )
}
end
因为已经是Java,可以在Java中正常导入引用了。