我正在尝试使用 Drools 框架积累一些经验。在测试期间我尝试以下测试
@Test public void testDrools() {
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession();
assertSame(session.getKnowledgeBase(), kbase);
}
为什么这个测试失败? session 是否具有对用于其创建的KnowledgeBase
的引用?我对此有点困惑。也许有人可以帮助我理解它。
提前非常感谢您。 阿尔贝托
最佳答案
这是一个实现细节,主要是因为 Drools 必须保持与 Drools 4.x 版本的向后兼容性。 kbase 和 session.getKnowledgeBase() 都是真实知识库的包装器,因此您有 2 个包装器,但两个包装器都指向知识库的一个实际实例。
关于java - 流口水为什么 StatefulKnowledgeSession 有不同的知识库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9297221/