Java drools drl验证是针对对象而不是pojo实例进行的吗

Java drools drl验证是针对对象而不是pojo实例进行的吗,java,drools,Java,Drools,在大多数drools示例中,我看到Pojo实例被作为事实传递给drools环境,drools环境可以接受对象而不是Pojo吗 根据评论添加更多信息: Object object= new ObjectMapper().readValue(json, Class.forName("com.EnrichmentService.EsRootDoc")); 上面的对象实例(Object)是否可以提供给drl,并将其自身的降级对象实例降级到com.EnrichmentService.Thread72.

在大多数drools示例中,我看到Pojo实例被作为事实传递给drools环境,drools环境可以接受对象而不是Pojo吗

根据评论添加更多信息:

Object object= new ObjectMapper().readValue(json,
 Class.forName("com.EnrichmentService.EsRootDoc"));

上面的对象实例(Object)是否可以提供给drl,并将其自身的降级对象实例降级到com.EnrichmentService.Thread72.EsRootDoc实例,因为它需要调用getter方法,我认为只能在EsRootDoc(运行时创建的pojo类)上调用,而不能在对象实例上调用。

是的,绝对可以。Drools检查所提供事实的实际类和接口层次结构

例如,如果有规则:

rule X
when
    Person()
then
    ...
以下两个代码段将提供相同的结果:

Person p = new Person();
ksession.insert(p);
ksession.fireAllRules();


是的,绝对是。Drools检查所提供事实的实际类和接口层次结构

例如,如果有规则:

rule X
when
    Person()
then
    ...
以下两个代码段将提供相同的结果:

Person p = new Person();
ksession.insert(p);
ksession.fireAllRules();


AFAIK,POJO=普通的旧Java对象。除了用于drools drl迭代的普通旧java对象之外的用例。谢谢你说的是什么类型的“对象”?Object pojo=new ObjectMapper().readValue(json,Class.forName(“com.EnrichmentService.EsRootDoc”);对象实例pojo是否可以提供给drl,并且会自动将对象实例向下转换为com.EnrichmentService.Thread72.EsRootDoc实例,因为它需要调用getter方法,我认为只能在EsRootDoc(运行时创建的pojo类)上调用,而不能在对象实例上调用,POJO=普通的旧Java对象。除了用于drools drl迭代的普通旧java对象之外的用例。谢谢你说的是什么类型的“对象”?Object pojo=new ObjectMapper().readValue(json,Class.forName(“com.EnrichmentService.EsRootDoc”);对象实例pojo是否可以提供给drl,并且会自动将对象实例向下转换为com.EnrichmentService.Thread72.EsRootDoc实例,因为它需要调用getter方法,我认为只能在EsRootDoc(运行时创建的pojo类)上调用,而不能在对象实例上调用