Почему Java Collection .toArray () возвращает Object [], а не E []?

До дженериков Java Collection.toArray () не было способа узнать, какой тип массива ожидал разработчик (особенно для пустой коллекции ). Насколько я понимаю, это было основным обоснованием идиомы collection.toArray (new E [0]) .

С дженериками, Collection .toArray () может возвращать только массив, полный экземпляров E и / или его специализаций. Интересно, почему возвращаемый тип по-прежнему Object [] , а не E [] . На мой взгляд, возврат E [] вместо Object [] не должен нарушать существующий код.

См .: Collection.toArray () , Collection.toArray (T []) и связанная тема java: (String []) List.toArray () дает ClassCastException

20
задан Community 23 May 2017 в 10:29
поделиться