【发布时间】:2012-09-24 14:32:13
【问题描述】:
我在 JBoss 中使用 Drools Guvnor。我正在创建一个声明性模型对象。我可以添加简单的类型,例如 String、Boolean 等。是否可以在我的对象中添加数组、List 和/或 Map?
【问题讨论】:
标签: java drools rule-engine
我在 JBoss 中使用 Drools Guvnor。我正在创建一个声明性模型对象。我可以添加简单的类型,例如 String、Boolean 等。是否可以在我的对象中添加数组、List 和/或 Map?
【问题讨论】:
标签: java drools rule-engine
可以在声明性模型中使用列表和地图。
我使用 Drools Guvnor 5.5.0.Final 并这样做:
创建新的声明性模型
添加新的事实类型:
姓名:人
添加字段:
名称:字符串
饮料:字符串
添加新的事实类型:
姓名:当事人
添加字段:
人:java.util.List
如果您点击“查看源代码”,您应该会看到如下内容:
declare Person
name: String
drink: String
end
declare Party
people: java.util.List
end
为了使用该模型,我在 Guvnor 中创建了一个“技术规则”,如下所示:
when
then
Person pa = new Person();
pa.setName("A");
pa.setDrink("Lager");
Person pb = new Person();
pb.setName("B");
pb.setDrink("IPA");
Party p = new Party();
p.setPeople(new java.util.ArrayList());
p.getPeople().add(pa);
p.getPeople().add(pb);
insert(pa);
insert(pb);
insert(p);
泛型似乎在流口水中效果不佳。我在构建包时遇到了一些编译错误。
希望对你有帮助!
【讨论】:
我认为这是不可能的(通过尝试和阅读文档)。我在 Guvnor 中读到过,您可以从现有 POJO 模型 (jar) 扩展类,并以这种方式使它们具有声明性。
【讨论】: