Несоответствие типов: невозможно преобразовать из double [] в int [] - PullRequest
0 голосов
/ 18 февраля 2020

Я пытаюсь, чтобы метод возвратил новый массив, который был создан для для l oop.

import java.util.Arrays;
public class stocks {

public static void main(String[] args) {

    double stockV [] = {55.6, 63.2, 68.1, 70.1, 72.4, 73.9, 71.5, 68.3, 67.1, 66.2}; 
    double isOverprices [] = overpriced(stockV);

}
    public int [] overpriced(double[] rsiValues)
    {
        for (int i = 0; i < rsiValues.length; i++)
        {
            if (rsiValues[i] > 70)
            {
                rsiValues[i] = 1;
            }
            else if (rsiValues[i] <= 70)
            {
                rsiValues[i] = 0;
            }
            return rsiValues;
        }
    }
 }

Ответы [ 2 ]

0 голосов
/ 18 февраля 2020
  1. Добавьте 'stati c' к подписи метода с завышенной ценой.
  2. Метод с завышенной ценой должен возвращать массив целых чисел, но вы возвращаете массив значений типа double.
  3. Поместите ваш оператор возврата за пределы для l oop.
  4. . В методе main измените isOverprices на массив int
  public static void main(String[] args) {
    double stockV [] = {55.6, 63.2, 68.1, 70.1, 72.4, 73.9, 71.5, 68.3, 67.1, 66.2}; 
    int isOverprices [] = overpriced(stockV);
    for(int i: isOverprices) {
      System.out.println(i);
    }
  }
  public static int [] overpriced(double[] rsiValues){
    int result [] = new int[rsiValues.length];
    for (int i = 0; i < rsiValues.length; i++)
    {
      if (rsiValues[i] > 70)
      {
          result[i] = 1;
      }
      else if (rsiValues[i] <= 70)
      {
          result[i] = 0;
      }
    }
    return result;
  }
0 голосов
/ 18 февраля 2020

Изменить на

public double[] overpriced(double[] rsiValues)

Вы, очевидно, возвращаете то, что передаете в метод, так почему вы думаете, что его вид изменится?

Кроме того, вы хотите вернуть значения после for l oop закончился.

for (int i = 0; i < rsiValues.length; i++)
{
    if (rsiValues[i] > 70)
    {
        rsiValues[i] = 1;
    }
    else if (rsiValues[i] <= 70)
    {
        rsiValues[i] = 0;
    }

}
return rsiValues;
...