Инициализация массива статических объектов в Java
В C++ общеизвестной и полезной практикой является использование списка инициализации для задания значений массива. При этом крайне удобно инициализировать при помощи фигурных скобок объекты в которых поля являются открытыми. Это либо структуры(struct) либо классы, у которых все поля открыты(перед ними указан access specifier как public).
Рассмотрим обычную структуру :
Объекты можно создавать и инициализировать на лету(конструктор нам не нужен!) :
Обратите внимание на синтаксис - во-первых, наличие фигурных скобок. Во-вторых - строгий порядок перечисления значений , соответствующий порядку определения переменных в структуре. У нового объекта - name=”Синус”, detec_name=”sin”, handler=”&sin”.
Теперь, собственно массивы, которые удобно инициализировать также как объекты :
Добавив всего-лишь одну строчку расширится функционал программы. Если пишется калькулятор с поддержкой простейших математических вычислений - то все функции можно определять по полю detect_name в этом массиве, а обработчик определяется полем handler.
Java - встроенная инициализация статических массивов из объектов. В Java - немного другая история. Чаще всего используются статические массивы, тип элементов которых объявлен рядом с ними.
Пример такого определения :
А можно было бы разделить инициализацию и поместить её в специальный static-блок :
Такой static-блок является функциональным блоком и в нём также можно выполнять любые действия :
На самом деле для инициализации ArrayList можно использовать метод java.util.Arrays.asList :