当前位置: 首页 > 知识库问答 >
问题:

如何评价”(1.25 > 8)?Java中的(2.3125 * sin(90)* 1.25):(2.3125 * sin(90)* 8)”

巫马望
2023-03-14

我正在使用org.springframework.expression.spel.standard.SpelExpressionParser来解析字符串表达式,但是当我将sin(90)添加到此表达式时,我收到以下错误:

EL1011E:(pos 50):方法调用:试图在空上下文对象错误时调用方法sin(java.lang.整数)。

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

共有1个答案

柯正谊
2023-03-14

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

选项1:§9.5.12功能:

您可以通过注册可以在表达式字符串中调用的用户定义函数来扩展SpEL。

选项 2: §9.5.9 类型:

特殊的T运算符可用于指定java.lang.类的实例(类型)。静态方法也使用此运算符调用。

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

如果使用选项2,那么表达式应该是这样的:

(1.25 > 8) ? (2.3125 * T(Math).sin(90) * 1.25) : (2.3125 * T(Math).sin(90) * 8)
 类似资料:
  • 什么是FDS? FDS是一种基于WEB的存储服务。向开发者提供高度可扩展、可靠的、低延时的存储基础设施。 FDS可以用来做什么? FDS提供一个简单的Web服务接口,可用于存储和提取任意数量的数据,这些操作可从Web上的任何位置随时执行。 FDS可以存储那种类型的数据? 实际上可以存储任意类型的数据。用户以Object的形式将数据存储在FDS。下载时可以下载整个Object的内容,也可以只下载特定

  • sin

    描述 (Description) 此函数返回EXPR的正弦,如果未指定,则返回$ _。 此函数始终返回浮点。 语法 (Syntax) 以下是此函数的简单语法 - sin EXPR sin 返回值 (Return Value) 此函数返回EXPR的浮点sin值 例子 (Example) 以下是显示其基本用法的示例代码 - #!/usr/bin/perl $temp = sin(4); print

  • sin

    sin(取正玄函数值) 相关函数 acos,asin,atan,atan2,cos,tan 表头文件 #include<math.h> 定义函数 double sin(double x); 函数说明 sin()用来计算参数x的正玄值,然后将结果返回。 返回值 返回-1 至1之间的计算结果。 附加说明 使用GCC编译时请加入-lm。 范例: #include<math.h> main() { dou

  • 描述 (Description) 该方法返回指定double值的正弦值。 语法 (Syntax) double sin(double d) 参数 (Parameters) 这是参数的细节 - d - 双数据类型。 返回值 (Return Value) 此方法返回指定double值的正弦值。 例子 (Example) public class Test { public static voi

  • sin

    此方法返回指定值的正弦值。 语法 (Syntax) sin(X) 参数 (Parameters) X - 为正弦函数指定一个值。 返回值 (Return Value) 返回值是表示正弦值的浮点值。 例如 (For example) -module(helloworld). -import(math,[sin/1]). -export([start/0]). start() -> S

  • 该方法返回指定double值的正弦值。 语法 (Syntax) double sin(double d) 参数 (Parameters) d - 双数据类型。 返回值 (Return Value) 此方法返回指定double值的正弦值。 例子 (Example) 以下是此方法的使用示例 - class Example { static void main(String[] args) {