Java 为什么StatefulKnowledgeSession有不同的知识库
我正在尝试对Drools框架进行一些体验。在我的测试中,我尝试了以下测试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
@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()都是真实知识库的包装器,因此您有两个包装器,但两个包装器只指向知识库的一个实际实例