0

私には2つの機能があります

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}int の配列または double の配列として解釈できます。double arr[] = {3,4,5}; avg(arr);orと to を使用int arr[] = {3,4,5}; avg(arr);してもエラーは発生しません。

于 2012-10-01T21:36:54.583 に答える