0

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

    @Test public void testDrools() {
        KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
        StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession();
        assertSame(session.getKnowledgeBase(), kbase);
    }

为什么这个测试失败了?KnowledgeBase会话具有用于其创建的引用不是真的吗?我对此有点困惑。也许有人可以帮助我理解它。

非常感谢您提前。阿尔贝托

4

1 回答 1

1

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

于 2012-02-15T19:08:38.430 回答