12

式を解析および評価するための Java ライブラリを探しています。Apache の JEXL や Jeval などのいくつかのライブラリを検索して試してみましたが、それらはまさに私が必要としているものではありません。

私の要件:

  1. すべての値の型をサポート (つまり、int、double、boolean、String など)
  2. すべての既知の数学および論理演算子 (+、-、​​、<、<= など) をサポートします。
  3. サポート変数 (特別な表記なし - たとえば、Jeval 変数では a は #{a} のように記述する必要があります - 私には十分ではありません)
  4. カスタム関数をサポート - 型の強制と検証

推奨事項はありますか?

4

4 に答える 4

7

Janinoを試してください。これは、式エバリュエーターとして使用できるランタイムのメモリー内コンパイラーです。多分それはあなたにとって正しいことです。

于 2012-08-14T07:33:11.490 に答える
3

提案されているように、JavaScript を使用できます。しかし、あなたの要件をサポートしているSpring ELを見ることもできます。

于 2012-08-14T07:30:55.277 に答える
0

実際の Java 式評価ライブラリが見つからない場合は、いくつかの回避策を選択できます。

  • XPath を使用して式を評価します。
    • 長所: XPath は論理演算子を認識し、Xalan の拡張機能を使用して変数とカスタム関数を実装できます。
    • 短所: XPath は Java よりも型が少ない
  • JavaScript を使用して式を評価します。
    • 長所: Javascript は非常に柔軟で、要件が厳しい場合にも適しています。Javascriptを使用して変数とカスタム関数を実装することもできます
    • 短所: Javascript は Java よりも型が少ない
  • JSP の式言語を使用して式を評価します (例: JUELを使用) 。
于 2012-08-14T07:28:24.890 に答える