0
私は私のEclipse Droolsのコンパイラ(6.5.0)は以下のように、Forループ内の文の最後にセミコロンを必要とする理由として、単に好奇心:DroolsのMVEL方言 - セミコロン要件
Map businessRulesRequest = $root.containsKey("BusinessRulesRequest") ? $root.get("BusinessRulesRequest") : null
Map quoteRequest = businessRulesRequest!=null && businessRulesRequest.containsKey("QuoteRequest") ? businessRulesRequest.get("QuoteRequest") : null
List resultsByKey = quoteRequest!=null && quoteRequest.containsKey("resultsByKey") ? quoteRequest.get("resultsByKey") : new ArrayList()
for (Map search : resultsByKey) {
Map searchInfo = (search.containsKey("searchInfo") ? search.get("searchInfo") : null);
String searchName = searchInfo!=null && searchInfo.containsKey("searchName") ? searchInfo.get("searchName").toString() : "";
List results = (searchName=="quotesMotor" && search.containsKey("results") ? search.get("results") : new ArrayList());
}
Forループの1行目または2行目からセミコロンを削除すると、ループの最後の行から削除すると「予期しないトークン」エラーが発生します。
DroolsはRHS行を1つのステートメントとして評価するため、ループ内で分離する必要がありますか?
メモ:セミコロンは必須ではないと仮定してコードを作成するのはベストプラクティスではありませんが、私は実験中にこの問題に遭遇し、コンパイラエラーの理由を知りたいと思っています。ありがとう。
感謝を願って、そして「あれば」それが扱うようにセミコロンが行の末尾に追加されていない場合、それは扱われますので、はい、それは、などの単一ラインなどのコンテンツ、「ため」、に見えます単一のステートメントとして。安全であるために、私が推測するすべての行にセミコロンを追加することをお勧めします。 – Neil