JEXL программа имеет ";" исключение - PullRequest
0 голосов
/ 09 июля 2010

Я делаю rnd для JEXL, но я получил исключение для программы ниже;

        String strDuration = "4560";
        long lDuration = Long.parseLong(strDuration);
        String theExpression = "" +
                "if(lDuration > 500)" +
                "   return true;" +
                "else" +
                "   return false;";

        Expression e =  jexl.createExpression( theExpression );
        JexlContext context = new MapContext();
        context.set("lDuration", lDuration);
        Boolean result =(Boolean) e.evaluate(context);
        System.out.println("The answer : " + result);

Исключение: Вызывается: org.apache.commons.jexl2.parser.ParseException: неоднозначное утверждение @ 1:30, отсутствует ';' между выражениями

Может ли кто-нибудь помочь мне отобразить вывод, который я хочу (логическое значение)?

Заранее спасибо.

1 Ответ

1 голос
/ 09 июля 2010

Вот, пожалуйста:

  public static void main(String[] args) {
    String strDuration = "4560";
    long lDuration = Long.parseLong(strDuration);
    String theExpression = "(lDuration > 500) ? true : false;";
    JexlEngine jexl = new JexlEngine();
    Expression e = jexl.createExpression(theExpression);
    JexlContext context = new MapContext();
    context.set("lDuration", lDuration);
    Boolean result = (Boolean) e.evaluate(context);
    System.out.println("The answer : " + result);
  }

Редактировать: Для ясности проблема заключается в том, что вы используете оператор return, JEXL, кажется, не поддерживается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...