在大多数drools示例中,我看到Pojo实例作为事实传递给drools环境,可以流口水环境采取对象而不是pojo ??
根据评论添加更多信息:
Object object= new ObjectMapper().readValue(json,
Class.forName("com.EnrichmentService.EsRootDoc"));
可以将上面的Object实例(对象)提供给drl,并将其自己的downcast对象实例上的droolmentService.Thread72.EsRootDoc实例,因为它需要调用getter方法,我相信只能在EsRootDoc(在运行时创建的pojo类)而不是Object实例。
答案 0 :(得分:2)
是的,绝对的。 Drools检查所提供事实的实际类和接口层次结构。
例如,如果有规则:
rule X
when
Person()
then
...
以下两个代码段会提供相同的结果:
Person p = new Person();
ksession.insert(p);
ksession.fireAllRules();
Object p = new Person();
ksession.insert(p);
ksession.fireAllRules();