Использовать язык выражений для получения значений - PullRequest
0 голосов
/ 15 апреля 2020

Мое выражение: #age*10 И я присвоил возрасту значение 15,6. Результат этого 156.0 Фактически, конечный результат, который я хочу получить: 156

Я могу сделать это в коде, но как это сделать, изменив выражение.

спасибо

1 Ответ

2 голосов
/ 15 апреля 2020

Вам необходимо использовать Integer.class, как показано ниже:

import org.springframework.expression.Expression;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;

public class Demo {
    public static void main(String[] args) {
        ExpressionParser parser = new SpelExpressionParser();
        StandardEvaluationContext context = new StandardEvaluationContext();
        Double age = 15.6;
        context.setVariable("age", age);
        Expression exp = parser.parseExpression("#age*10");
        int result = exp.getValue(context, Integer.class);
        System.out.println(result);
    }
}

Выход:

156
...