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 つのラッパーがありますが、両方のラッパーが指すナレッジ ベースの実際のインスタンスは 1 つだけです。

于 2012-02-15T19:08:38.430 に答える