8)? (2.3125 * sin(90) * 1.25) : (2.3125 * sin(90) * 8)"-6ren"> 8)? (2.3125 * sin(90) * 1.25) : (2.3125 * sin(90) * 8)"-我正在使用 org.springframework.expression.spel.standard.SpelExpressionParser 来解析 String 表达式,但是当我添加 sin(90-6ren">
gpt4 book ai didi

java - 如何在Java中评估 "(1.25 > 8)? (2.3125 * sin(90) * 1.25) : (2.3125 * sin(90) * 8)"

转载 作者:行者123 更新时间:2023-12-01 21:28:56 25 4
gpt4 key购买 nike

我正在使用 org.springframework.expression.spel.standard.SpelExpressionParser 来解析 String 表达式,但是当我添加 sin(90) 时> 对于这个表达式,我收到以下错误:

EL1011E:(pos 50): Method call: Attempted to call method sin(java.lang.Integer) on null context object error.

知道如何解决这个问题吗?

最佳答案

阅读 Spring 表达式语言 (SpEL) 手册。

选项 1:§9.5.12 Functions :

You can extend SpEL by registering user defined functions that can be called within the expression string.

选项 2:§9.5.9 Types :

The special T operator can be used to specify an instance of java.lang.Class (the type). Static methods are invoked using this operator as well.

如果您选择选项 1,则可以注册 sin() 函数,并且表达式将保持不变。

如果您选择选项 2,那么表达式应如下所示:

(1.25 > 8) ? (2.3125 * T(Math).sin(90) * 1.25) : (2.3125 * T(Math).sin(90) * 8)

关于java - 如何在Java中评估 "(1.25 > 8)? (2.3125 * sin(90) * 1.25) : (2.3125 * sin(90) * 8)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37670498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com