Spring el Spring EL-调用静态接口方法
有没有办法在SpEL中调用静态接口方法? 例如:Spring el Spring EL-调用静态接口方法,spring-el,Spring El,有没有办法在SpEL中调用静态接口方法? 例如: T(java.util.stream.IntStream).of(new Integer[]{1,2,3}).sum() 当我运行此命令时,我得到以下错误:在类java.lang.class上定位类型的方法时出现问题它需要是“T(java.util.stream.IntStream).of(new int[]{1,2,3}).sum()” (int[]非Integer[]) 问题是有2个of()方法,需要从Integer[]进行转换,因此 原因
T(java.util.stream.IntStream).of(new Integer[]{1,2,3}).sum()
当我运行此命令时,我得到以下错误:在类java.lang.class上定位类型的方法时出现问题
它需要是“T(java.util.stream.IntStream).of(new int[]{1,2,3}).sum()”
(int[]
非Integer[]
)
问题是有2个of()
方法,需要从Integer[]
进行转换,因此
原因:org.springframework.expression.spel.SpelEvaluationException:EL1033E:of的方法调用不明确,支持的类型转换允许多个变量匹配
您缺少向我们显示更多堆栈跟踪:
Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1033E: Method call of 'of' is ambiguous, supported type conversions allow multiple variants to match
at org.springframework.expression.spel.support.ReflectiveMethodResolver.resolve(ReflectiveMethodResolver.java:211)
它无法通过反射在运行时解析正确的方法,因为IntStream
中有几个of()
方法
这对我很有用:
ExpressionParser parser = new SpelExpressionParser();
Expression expression = parser.parseExpression("T(java.util.stream.IntStream).of(1,2,3).sum()");
assertThat(expression.getValue()).isEqualTo(6);
我开了一家商店。