Boolean Expression Evaluation in Java

前端 未结 10 1323
-上瘾入骨i
-上瘾入骨i 2020-12-05 16:26

I\'m looking for a relatively simpler (when compared with writing a parser) way to evaluate boolean expressions in Java, and I do not want to use the JEP library.

I

10条回答
  •  醉梦人生
    2020-12-05 16:41

    try Janino http://docs.codehaus.org/display/JANINO/Home It is very simple to use eg (taken from http://docs.codehaus.org/display/JANINO/Basic):

    // Compile the expression once; relatively slow.
    ExpressionEvaluator ee = new ExpressionEvaluator(
        "c > d ? c : d",                     // expression
        int.class,                           // expressionType
        new String[] { "c", "d" },           // parameterNames
        new Class[] { int.class, int.class } // parameterTypes
    );
    
    // Evaluate it with varying parameter values; very fast.
    Integer res = (Integer) ee.evaluate(
        new Object[] {          // parameterValues
            new Integer(10),
            new Integer(11),
        }
    );
    System.out.println("res = " + res);
    

提交回复
热议问题