有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Drools中的java类型不安全对象字段访问

我正在使用一个系统,其中一些插入Drools引擎的数据遵循以下格式(严重过于简化):

public class Item {
    public String getValueType() { ... }
    public Object getValue() { ... }
}

这些值可以是几种不同的类型。现在,我想创建一系列Drools规则来检查各个字段的值,大致如下:

$a : Item(valueType == "Car", value.owner.location == "At Home")
$b : Item(valueType == "Payments", value.rates.discounts.percent == 1337)
$c : Item(valueType == "Royalty", value.student.occupation == "Librarian")

。。。等等现在,我面临的问题是Drools静态类型在加载规则时检查规则,不允许将其用作对象并不能保证拥有owner/rates/student字段等等

有没有办法做到这一点,可能是某种类型的类型转换或绕过类型检查

(注意:不幸的是,现在还不能选择将模型更改为键入,而不是将所有内容推入对象。)


共 (2) 个答案

  1. # 2 楼答案

    您也可以在类型声明中使用@typesafe(false),但如另一个答案中所示的强制转换要好得多