Попытка понять, почему у меня возникает ошибка несовместимых типов при вызове переменной - PullRequest
0 голосов
/ 04 мая 2019

У меня есть проблема с ревизией, которая требует, чтобы я добавил случайно сгенерированный дубль для добавления в существующий список arrayList entrants, это происходит в методе runRace, и я почти уверен, что кодировал эту часть runRace правильно, но в этом методе я получаю ошибку несовместимых типов, когда я пытаюсь передать значение randomRaceTime переменной времени в классе Entrant.

Это единственная переменная, которая была задана, которая еще не использовалась, поэтому я более чем уверен, что она должна идти, а затем она добавляется в ArrayList как еще одна запись.

Но я изо всех сил пытаюсь понять, почему я получаю ошибку несовместимого типа, поскольку я объявил все предыдущие переменные как двойные или неправильно передаю данные

Я включил оба полных класса, любая помощь будет принята с благодарностью, так как я думал, что понял это.

public class WCCR
{
   // instance variables - replace the example below with your own
   private ArrayList<String> entrants;
   static Scanner myInput = new Scanner(System.in); // initialise user input
   private double randomRaceTime;

   /**
    * Constructor for objects of class WCCR
    */
   public WCCR()
   {
      // initialise array list of objects Entrants
      entrants = new ArrayList<>();
   }

   public void readInEntrants()
   {
      System.out.println("Enter your file");
      String textFileInput = myInput.nextLine(); // takes input from user
      entrants = new ArrayList<>();
      try 
      {     
         FileReader file = new FileReader(textFileInput);//textFileInput); // reads the file
         BufferedReader buffer = new BufferedReader(file);
         String fileLine = "";
         while ((fileLine = buffer.readLine())!= null) // reads through the file
         { 
            entrants.add(fileLine);

         }
         buffer.close();
      }
      catch (IOException e) // catches input/output error
      {
         System.out.println("A read error has occurred");
      }
      // System.out.println("The Entrants are : " + entrants); // used to test the file has been added to the array list
   }

   public double generateTime()
   {   
     int size = entrants.size();
     for(int y = 0; y < size; y++)
     {
        Random r = new Random();
        randomRaceTime = 30.00 + (60.00 - 30.00) * r.nextDouble();
     }
     //System.out.println("The race times are: " + randomRaceTime);   
   }

   public void runRace()
   {
      int size = entrants.size();
      entrants = new ArrayList<>();
      for(int y = 0; y < size; y++)
      {
         Entrant time = randomRaceTime; // variable time from Entrant Class assigned the value of randomRacetime
         entrants.add(time); // time added to the array List entrants
         System.out.println("The Entrants are with times are: " + entrants);
         // System.out.println("arrayList size is :" + size); used to test array is correct
      }
   }
}
public class Entrant
{

   /* instance variables */

   private int number;       // entrant's number
   private String name;      // entrant's name
   private String category;  // 
   private double time;      // entrant's time in seconds

   /**
    * Constructor for objects of class Entrant.
    */
   public Entrant()
   {
      super();
      name = "";
      category = "";
      time = 0.0;
      while(number > number + 1)
      {
         number++;
      }
   }
}

// getter & setter methods follow

Участники со временем: [Джон Смит, E1, Мэри Джонс, E2, Джейн Смит, E1, Мэйлин Ванг, E3, Карлос Гонсалес, E3, Даррен Эдвардс, E2, Мелани Робертс, E1, Марк Эдвардс, E2 Шам Сингх, E3, Мораг Стивенс, E1, Джеймс Лонг, E2, Дэвид Кларк, E3, Робин Армстронг, E3, Максин Роджерс, E2, Роузин Хьюз, E1, Джонатан Майлз, E1, Клаус Мюллер, E2, Кристин Майлз, E1 Эндрю Смит, E3, Астрид Уитцани, E3, Нико ван Дорд, E2, Ив Тирионет, E1, Энди Симпсон, E2, Брайан Двелли, E3, Вера Аланд, E1, Барри Милсом, E2, Саймон Харрис, E3, Хелен Джонс, E3, Джастин Лоусон, E2, Сара Дженнингс, E1]

- это весь массив при вызове, но он должен добавить другое значение для каждой записи случайно сгенерированного двойного

1 Ответ

1 голос
/ 04 мая 2019

Вы объявили участников как ArrayList<String>, но я думаю, что вместо этого должно быть ArrayList<Entrant>.Вы не можете добавлять участников в список строк.

Во-вторых, вы не можете присвоить double (randomRaceTime) переменной, объявленной как Entrant

...