2016-08-14 4 views
-1

Я создаю массив методов и продолжаю получать ошибку: double не может быть преобразован в double []. Вот мой код:Ошибка Java: double не может быть преобразован в double []

public static double[] calculate(double[] number1, double[] number2) 
    { 
     for(int i=0; i<10; i++) 
     { 
      return number1[i] * (6.67e-3)/(number2[i]*number2[i]) 
     } 
    } 

Я не совсем понимаю, почему это неправильно, потому что не должны массивы были преобразованы в два раза По моему циклу?

+2

Вы не возвращает двойной массив ... И проблема не может произойти здесь, вы даже не работаете с булевыми – Li357

+0

Это было предложено и ответило много раз на этом и похожих сайтах. Вы уже искали сообщение об ошибке? –

+0

Вы хотите создать массив double внутри метода, заполнить массив двойными результатами и затем вернуть его в конце. –

ответ

1

Прежде чем предлагать исправить ошибку компилятора, сначала необходимо понять разницу между примитивным типом данных и массивом.

double является primitive data type.

array - контейнерный объект, который может содержать данные того же типа. Таким образом, двойной и двойной [] не являются одинаковыми.

Увидев ваш код, кажется, вы хотите вернуть массив двойных значений, вычисленных из значений входного массива.

Здесь вам необходимо создать массив ret требуемого размера, прежде чем назначать значения отдельным элементам массива. Наконец, верните массив вне цикла.

public static double[] calculate(double[] number1, double[] number2) 
{ 
     double[] ret = new double[10]; 
     for(int i=0; i<ret.length; i++) 
     { 
      ret[i] = number1[i] * (6.67e-3)/(number2[i]*number2[i]); 
     } 
     return ret; 
} 
+0

Спасибо! Я вижу, что я сделал ... Я думал, что требуемый размер будет автоматически. – anoushajava

Смежные вопросы