Java 方法在返回整数时起作用,但当要求同一方法返回双精度时,会发生NoSuchMethodError

Java 方法在返回整数时起作用,但当要求同一方法返回双精度时,会发生NoSuchMethodError,java,arrays,methods,runtime-error,Java,Arrays,Methods,Runtime Error,答案发现:我的jdk将文件编译在一起,这导致了错误,修复方法是单独编译每个文件。我感谢所有的帮助,谢谢 我有一个方法返回数组中整数的平均值。以下方法可以正常工作: public int arrayAvg(int[] nums){ int result = 0; for (int i : nums){ result = result + i; } return result/nums.length; } 但当使用以下方法代替其时: public d

答案发现:我的jdk将文件编译在一起,这导致了错误,修复方法是单独编译每个文件。我感谢所有的帮助,谢谢

我有一个方法返回数组中整数的平均值。以下方法可以正常工作:

public int arrayAvg(int[] nums){
    int result = 0;
    for (int i : nums){
        result = result + i;
    }
    return result/nums.length;
}
但当使用以下方法代替其时:

public double arrayAvg(int[] nums){
    double result = 0;
    for (int i : nums){
        result = result + i;
    }
    return result/nums.length;
}

程序可以编译,但请在代码中使用
java.lang.NoSuchMethodError

停止。是否有多个源文件?如果是这样,您是否重新编译了依赖于您刚刚更改的源的源代码?请在代码中使用java.lang.NoSuchMethodError停止-请发布StackTracebot代码片段。您是否使用反射来调用此函数?请注意,使用反射返回代码很重要,因此您可能正在调用旧函数,该函数在更改后不再存在。您试图重载一个方法,但两个方法都包含相同的签名,即使一个返回int,另一个返回double。将一个方法的名称更改为doubleArrayAvg()。欢迎来到单独编译和更改契约带来的痛苦世界。