我尝试使用Drools框架获得一些经验。在我的测试中,我尝试以下测试
@Test public void testDrools() {
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession();
assertSame(session.getKnowledgeBase(), kbase);
}
为什么这个测试失败了?会话是否有引用KnowledgeBase
用于创建它的情况?我对此有点困惑。也许有人可以帮助我理解它。
非常感谢您提前。 阿尔贝托
答案 0 :(得分:1)
这是一个实现细节,主要是因为Drools必须保持与Drools 4.x版本的向后兼容性。 kbase和session.getKnowledgeBase()都是真实知识库的包装器,因此你有2个包装器,但是两个包装器指向的知识库只有一个实际实例。