如何获取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中正常导入引用了。