Java 为什么StatefulKnowledgeSession有不同的知识库

Java 为什么StatefulKnowledgeSession有不同的知识库,java,jboss,drools,rule-engine,drools-fusion,Java,Jboss,Drools,Rule Engine,Drools Fusion,我正在尝试对Drools框架进行一些体验。在我的测试中,我尝试了以下测试 @Test public void testDrools() { KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession(); assertSame(sessio

我正在尝试对Drools框架进行一些体验。在我的测试中,我尝试了以下测试

    @Test public void testDrools() {
        KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
        StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession();
        assertSame(session.getKnowledgeBase(), kbase);
    }
为什么这个测试失败?会话的创建使用了对
KnowledgeBase
的引用,这不是真的吗?我对此有点困惑。也许有人能帮我理解它

事先非常感谢。
Alberto

这是一个实现细节,主要是因为Drools必须保持与Drools 4.x版本的向后兼容性。kbase和session.getKnowledgeBase()都是真实知识库的包装器,因此您有两个包装器,但两个包装器只指向知识库的一个实际实例