Обоснование для Integer, Boolean и т. Д. Состоит в том, чтобы разрешить использование примитивных типов в контекстах, которые требуют ссылочного типа. Классический вариант использования - это API-интерфейсы сбора, которые предоставляют наборы, списки, карты, очереди и т. Д., Где тип элемента должен быть некоторого ссылочного типа.
Таким образом я могу написать:
List<Integer> list = new ArrayList<Integer>();
но ошибка компиляции следующая:
List<int> list = new ArrayList<int>();
Обратите внимание, что этот сценарий использования для типов примитивных оболочек предшествует как универсальным типам, так и API-интерфейсам "новых" коллекций, и восходит к тем временам, когда единственными типами коллекций были исходные (предварительные) формы Vector
и Hashtable
, и их род.