0

我有两个功能

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) 吗?

谢谢,

维杰·博尔

4

1 回答 1

0

{3,4,5}可以解释为整数数组或双精度数组。使用double arr[] = {3,4,5}; avg(arr);orint arr[] = {3,4,5}; avg(arr);和 tou 应该没有错误

于 2012-10-01T21:36:54.583 回答