我有两个功能
public static double avg(int[] values) {
if(values == null || values.length == 0) return -1;
double sum = 0;
for(int value:values) {
sum = sum + value;
}
return (sum/values.length);
}
public static double avg(double[] values) {
if(values == null || values.length == 0) return -1;
double sum = 0;
for(double value:values) {
sum = sum + value;
}
return (sum/values.length);
}
我正在使用Spel表达式引擎来评估表达式。 当我部署此代码并调用表达式avg({3,4,5})或avg({3.0,4.0,5.0})时,我得到以下错误,
Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1033E:(pos 0): Method call of 'avg' is ambiguous, supported type conversions allow multiple variants to match
在评估过程中int []数组是否隐式转换为double []?
我应该使它成为单一功能avg(double [] values)??
谢谢,
Vijay Bhore
答案 0 :(得分:0)
{3,4,5}
可以解释为整数数组或双精度数组。
使用double arr[] = {3,4,5}; avg(arr);
或int arr[] = {3,4,5}; avg(arr);
并且tou应该没有错误