我正在使用org.springframework.expression.spel.standard.SpelExpressionParser
来解析String
表达式,但是当我向此表达式添加sin(90)
时,我收到以下错误:
EL1011E:(pos 50):方法调用:尝试在空上下文对象错误上调用方法sin(java.lang.Integer)。
知道如何解决这个问题吗?
答案 0 :(得分:3)
阅读Spring Expression Language(SpEL)手册。
选项1:§9.5.12 Functions:
您可以通过注册可在表达式字符串中调用的用户定义函数来扩展SpEL。
选项2:§9.5.9 Types:
特殊
T
运算符可用于指定java.lang.Class的实例( type )。也可以使用此运算符调用静态方法。
如果选择选项1,则可以注册sin()
函数,表达式将保持不变。
如果你选择选项2,那么这就是表达式的外观:
(1.25 > 8) ? (2.3125 * T(Math).sin(90) * 1.25) : (2.3125 * T(Math).sin(90) * 8)