2017-08-18 14 views
0

ほとんどのdroolsの例では、私はPojoインスタンスがdrools環境にファクトとして渡されているのを見ました。ドール検証はオブジェクトの代わりにオブジェクトインスタンスに対して行われます

詳細は、コメントごとに追加される:

Object object= new ObjectMapper().readValue(json, 
Class.forName("com.EnrichmentService.EsRootDoc")); 

は上記オブジェクトのインスタンス(オブジェクト)はDRLに提供することができるとしてcom.EnrichmentService.Thread72.EsRootDocインスタンスに独自のダウンキャストオブジェクトインスタンスにdroolsがあろうEsRootDoc(実行時に生成されるpojoクラス)ではなく、Objectインスタンスではなく、getterメソッドを呼び出す必要があります。

+0

私の知る限り、POJO =昔ながらのJavaオブジェクト:

rule X when Person() then ... 

を次の2つのコードスニペットは、同じ結果を提供するであろう – laune

+0

正確にlaune。 droolsのdrl反復のための普通の古いJavaオブジェクトとは別に、ユースケースを使用します。ありがとうございます – user3152549

+0

"オブジェクト"あなたはどんな種類の話ですか? – jfneis

答えて

1

はい、絶対に。 Droolsは、提供されたファクトの実際のクラスおよびインタフェース階層をチェックします。例えば

、一つのルールがある場合:

Person p = new Person(); 
ksession.insert(p); 
ksession.fireAllRules(); 

Object p = new Person(); 
ksession.insert(p); 
ksession.fireAllRules(); 
関連する問題