Java различает типы объектов и примитивные типы, что вызывает путаницу у начинающих. Типы коллекций, такие как ArrayList, требуют объектных типов, но не могут напрямую содержать примитивные типы. Java автоматически упаковывает примитивные типы в их объектные аналоги, упрощая использование. Предоставленный код демонстрирует непонимание этой функции, излишне упаковывая и распаковывая целые числа. Этот код извлекает данные из базы данных, заполняя ArrayList объектами Integer. Вместо того, чтобы использовать ArrayList напрямую, код затем создает массив int и копирует значения Integer в него. Это ненужное преобразование, вероятно, возникает из-за предпочтения массивов примитивных типов. Необходимость итерации по ResultSet для определения его размера требует промежуточного списка. Использование массива int может быть преждевременной оптимизацией или отражением предпочтения разработчика. Автор подозревает, что код был написан кем-то, кто более знаком с C. Код можно упростить, используя ArrayList напрямую, воспользовавшись автопреобразованием Java. Этот подход избегает ручной упаковки, распаковки и создания ненужного массива int.
thedailywtf.com
CodeSOD: Integral to a Database Read
Create attached notes ...
