Добавление объекта в общий список ArrayList в Java

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

public ArrayList<? extends Object> loadDataToList(Class<?> cls)
{
    ArrayList<? extends Object> returnList = null;
    File fileToLoad = null;
    Object loadObject = null;

    if (cls == CPassenger.class)
    {
        returnList = new ArrayList<CPassenger>();
        fileToLoad = passengerFile;
        loadObject = new CPassenger();
    }
    else if (cls == CFlightRecord.class)
    {
        returnList = new ArrayList<CFlightRecord>();
        fileToLoad = flightRecordFile;
        loadObject = new CFlightRecord();
    }
    else
    {
        return null;
    }

    boolean EOF = false;

    try
     {
       ObjectInputStream in = new ObjectInputStream (new FileInputStream 
              (fileToLoad.getName()));

       while (!EOF)
       {
         try
         {

           loadObject = cls.cast(in.readObject());

           // Error is here.              
           returnList.add(loadObject);

            } // try
            catch (EOFException e)
            {
              EOF = true;
            }

          } // while (!EOF)

          in.close ();
        } // try
        catch (Exception e)
        {
          e.printStackTrace (System.out);
        }

    return returnList;
}

Ошибка, которую я получаю при попытке добавить loadObject в returnList: Метод add(capture#6-of? extends Object) в типе ArrayList<capture#6-of ? extends Object> неприменим для аргументов (Object).

Почему метод add не принимает loadObject?


person Ted Jani    schedule 03.03.2015    source источник