Использовать язык выражений для получения значений

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

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

Спасибо

1 ответ

Решение

Вам нужно использовать 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
Другие вопросы по тегам