問題タブ [jexl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JEXL を使用して文字列を評価するときに別の引用符を使用する
要件は、JEXL を使用して、以下のように文字列パラメーターを持つファイルから Java メソッドを評価することです。
しかし、時々私の String 引数は異なる引用符で書かれています:
JEXL のドキュメントによると、単純な引用符 ' または二重引用符 " を使用できますが、フランスのギルメットは使用できません: https://commons.apache.org/proper/commons-jexl/reference/syntax.html#Literals
これを行う1 つの方法は、最初にファイルをクリーンアップし、すべての異なる引用符を置き換えて、常に同じものを使用することです。
この動作を変更する他の方法はありますか?
java - Jexl3 のカスタム クラスの演算子のオーバーロード/定義
Boolean
Jexl 式のように動作するカスタム クラスを実装しようとしています。
例:
Object result = jexl.createExpression("a || b").evaluate(context)
a
とはカスタムb
クラスのインスタンスでありboolean
、最終的に でアクセスできるように、評価された式を通じて実行する必要がある と の追加情報を含みますresult
。
Jexl3 はオペレーターのオーバーロードをサポートする必要があることを読みましたが、カスタム クラスの独自のオペレーターを定義するために必要なすべての構造を備えているようですが、そのために必要な手順を理解できません。
私はすでにカスタム実装によって拡張しようとしていUberspect
ますが、使用するとカスタムオブジェクトを変換できることがJexlArithmetic
わかりました(これにより、すべての追加情報が失われます)。toBoolean
Boolean
result
Boolean
カスタムクラスにブール演算子を提供するために Jexl を適切に使用/拡張する方法は?
java - JEXL : 再帰式を解析する方法
JEXL 式がある場合、関連するすべての変数を JEXL コンテキストに動的に追加するために、どのように解析できますか?
例: 初期式:
VAR1 と VAR2 は別の式です
さらに多くの VAR1 が別の深さレベルを持つことができます :
したがって、 Initial expression を評価する前に、コンテキスト VAR1 と VAR2 と VAR3 を追加する必要があります。どうすれば動的に実行できますか?
JEXL パーサーを使用することは可能ですか? それとも、JEXL 例外をキャッチして? 例を挙げていただけますか?
よろしく