2017-08-11 15 views
1

不明な変数の警告メッセージはどのように取得するのですか?JEXL - 未知の変数に関する警告メッセージを受け取るには?

私は、評価したいすべての欠損変数を知りたい表現があります。

例:

jexl.setStrict(false); 
Expression e = (Expression) jexl.createExpression("(pqr||abc)&&xyx&&!(rsw||ruy)&&!sss"); 

JexlContext context = new MapContext(); 
context.set("rsw",false); 
context.set("xyx",true); 
Object obj=e.evaluate(context); 
System.out.println(obj); 

出力:

Aug 11, 2017 10:58:24 AM org.apache.commons.jexl2.Interpreter unknownVariable 
WARNING: [email protected]![1,4]: '(pqr || abc) && xyx && !(rsw || ruy) && !sss;' undefined variable pqr 
false 
Aug 11, 2017 10:58:24 AM org.apache.commons.jexl2.Interpreter unknownVariable 
WARNING: [email protected]![8,11]: '(pqr || abc) && xyx && !(rsw || ruy) && !sss;' undefined variable abc 

私は、未定義の変数の両方をキャプチャしたいと思います。 jexl.setStrict(true)を設定してtryとcatchブロックを追加すると、1つの変数しか取得できません。

catch(JexlException.Variable xjexl)  { 
      System.out.println("Exception:" +xjexl.getVariable());   
      xjexl.printStackTrace(); 
     } 

私は他の技術も使用しています。

答えて

0

以下のgetVariables()メソッドを使用して回避することができました。

サンプル:。

jexl.createScript( "!!(PQR || ABC)& & XYX & &(RSW ||ルイ)& & SSS")getVariables();

関連する問題