2013-12-13 7 views
0

У меня возник вопрос о том, как вызвать статический метод массива. В моем случае, я считаю, что мой статический метод массива прекрасен, потому что компилятор не жалуется на это, но, когда я его называю, он говорит: double cannot be converted to double[] Как я могу это исправить? Любая помощь будет оценена. Ниже приведен фрагмент моего кода:массивы и статические методы java

// create allowed x values for calculation static method 
public static double[] allowedValuesX(double[] x, double[] y, int choice){ 
    double allowedVx[] = new double[choice]; 
    int i = 0; 
    for(i = 0; i < allowedVx.length; i++){ 
     if((Math.pow(x[i], 2) + (Math.pow(y[i], 2))) <= 1){ 
      allowedVx[i] = x[i]; 
     } 
    } 
    return allowedVx; 
} 
// main method 
public static void main(String args[]){ 
// create Scanner object 
    Scanner in = new Scanner(System.in); 

    // call to promptUser 
    promptUser(); 

    // create variable for recieving user input 
    int choice = in.nextInt(); 

    double x[] = new double[choice]; 
    int i = 0; 
    for(i = 0; i < x.length; i++){ 
     x[i] = Math.random(); 
    } 
// call to allowed x values 
    allowedValuesX(x[i], y[j], choice); 
+1

'allowedValuesX (x [i], y [j], выбор);' vs 'double [] x, double [] y, int choice'. Вы видите разницу? Ваша подпись ожидает массив, но вы вызываете его с одним значением из массива (aka: один «double»). –

ответ

3

Вы передаете конкретные элементы массива при вызове allowedValuesX:

allowedValuesX(x[i], y[j], choice); 

Но вы должны пройти массивы себя, чтобы соответствовать типам параметров метода:

allowedValuesX(x, y, choice); 
Смежные вопросы