Java 比较JBoss Drools中相同类的对象

Java 比较JBoss Drools中相同类的对象,java,jboss,drools,Java,Jboss,Drools,我有一个快速的问题-是否可以在Drools中比较同一类的两个对象?如果是,如何区分这两个对象?是 first : Object() second : Object( this != first ) 第一个和第二个属于同一类,但实例不同。是 first : Object() second : Object( this != first ) 第一个和第二个属于同一类,但实例不同。回答您的后续问题。是的,两个对象都需要在工作内存中才能激活规则。在Toni的示例中,“first”绑定到第一个对象,“

我有一个快速的问题-是否可以在Drools中比较同一类的两个对象?如果是,如何区分这两个对象?

first : Object()
second : Object( this != first )
第一个和第二个属于同一类,但实例不同。

first : Object()
second : Object( this != first )

第一个和第二个属于同一类,但实例不同。

回答您的后续问题。是的,两个对象都需要在工作内存中才能激活规则。在Toni的示例中,“first”绑定到第一个对象,“second”绑定到第二个对象(即使用“first”访问第一个对象)。要访问对象上的方法,可以使用mvel/java语法,如first.userId或first.getUserId()。因此,要查看WM中是否有两个具有相同用户ID的不同对象:

 when
   $first : Object()
   $second : Object( this != $first, userid==$first.userId )
 then
 ...
注意,按照惯例,您经常会看到上面以“$”为前缀的模式绑定变量


hth

回答您的后续问题。是的,两个对象都需要在工作内存中才能激活规则。在Toni的示例中,“first”绑定到第一个对象,“second”绑定到第二个对象(即使用“first”访问第一个对象)。要访问对象上的方法,可以使用mvel/java语法,如first.userId或first.getUserId()。因此,要查看WM中是否有两个具有相同用户ID的不同对象:

 when
   $first : Object()
   $second : Object( this != $first, userid==$first.userId )
 then
 ...
注意,按照惯例,您经常会看到上面以“$”为前缀的模式绑定变量


hth

请详细说明您的问题。这两个对象都被断言为工作内存吗?或者它们是否包含在另一个对象中,该对象已被断言为工作内存。请详细说明您的问题。这两个对象都被断言为工作内存吗?或者它们包含在另一个对象中,该对象已被断言为工作内存。