Есть ли способ определить значение по умолчанию для объекта в массиве, который будет инициализирован?Инициализация объекта в массиве со значением по умолчанию - java
Таким же образом, что примитивные типы инициализируются при объявлении массива из них:
int[] myIntArray = new int[5]; // we now have an array of 5 zeroes
char[] myCharArray = new char[2]; // an array in which all members are "\u0000"
т.д.
Я хотел бы объявить массив объектов типа, который я и автоматически их инициализировать автоматически. Я предполагаю, что это означало бы, что я хотел бы запустить new myObject()
для каждого индекса в массиве (со стандартным конструктором).
Я не смог найти что-либо релевантное онлайн, ближе всего я получил использовать Arrays.fill(myArray, new MyObject())
после инициализации массива (который фактически просто создает один объект и заполняет массив указателями на него) или просто использует цикл переходить через массив и инициализировать каждую ячейку.
спасибо!
EDIT: Я понял, что это относится не только к массивам, но и к объявлению объектов вообще и по умолчанию их автоматически присваивает значение/инициализировать.
Такое поведение также определить в [JLS] (https://docs.oracle. ком/JavaSE/данные/JLS/SE7/html/JLS-4.html # ПСБ-4.12.5). – Maroun
Нет встроенного решения, а не так, что Java будет обнулить массив для вас, когда он будет выделен. Довольно приятное решение: 'Stream.generate (() -> new MyObject()). Limit (5) .toArray (MyObject [] :: new)' – Cardano
Вы могли бы подробно рассказать о том, что именно это делает? благодаря! –