0

drl ファイルでグローバルな hashMap を使用できるかどうかを誰かに教えてもらえますか?

処理されたすべてのドキュメントを追跡するカウンター機能を実装しようとしています。

ルール ファイル レベルで変数を宣言したい (Java のクラス変数のようなもの)。

4

3 に答える 3

2

私はグローバル リストを問題なく使用してきたので、マップも同様に機能すると思います。

setGlobal()メソッドで開始するときに、グローバルをワーキングメモリに渡すことができます。global次に、drl ファイルで、次のようにキーワードを使用してその使用を宣言します。

import java.util.Map

global Map myMap

when
  // some condition
then
  myMap.put(...);
end
于 2013-10-31T05:47:16.393 に答える
0

まず、メイン プログラムでグローバル変数を作成します。

public static HashMap<String , String> collectRule = new HashMap<String , String>();

その変数をワーキングメモリに渡し、

WorkingMemory workingMemory = ruleBase.newStatefulSession();
workingMemory.setGlobal( "myGlobalList", collectRule );    

次に、.drl ファイルに入ります。

    import java.util.Map
    global java.util.Map myGlobalList;
rule " Rule 1: Hello World"
    when 
        //some codition 
    then
        myGlobalList.put(key,value);
    end
于 2017-02-20T13:46:26.290 に答える