在java编程中,函数名不存在或签名不正确,应该怎么解决

下面是我写的代码。
我在函数声明上有问题,但在代码里面写了“minimizeM”,所以不知道错在哪里?

static double minimizeM(HerbivoreParameters p, int k, double[] c)
{
double minM = 0;
double maxCj = Double.NaN;

    for (double cj:c)
    {
        p.gamma = cj;
        if (!areParametersValid(p))
        {
            maxCj = Double.NaN;
            break;
        }
        double[] resultArr = solveModel(p,k);

        double maxMTemp = getMaxM(resultArr);
        if (maxMTemp < minM || minM == 0)
        {
            minM = maxMTemp;
            maxCj = cj;
        }
        System.out.println("maxCj:" + maxCj + "the minimum M" + minM);
    }
    System.out.println("===================the final result:" + maxCj);
    return maxCj;
}

/**
 * to compute the maximum value in the array of arguments
 * 
 * @param resultArr
 * @return max
 */
public static double getMaxM(double[] resultArr)
{
    double max = 0;
    for (int i = 0; i < resultArr.length; i++)
    {
        if (resultArr[i] > max)
        {
            max = resultArr[i];
        }
    }
    return max;
} 

img

public static double minimizeM(HerbivoreParameters p, int k, double[] c)
加上public

方法未加 public,调用时不在一个包的话,不行的