Нашел в комментариях идею решения через VarArgs от пользователя vk Заинтересовало и хочу её реализовать. Здесь в вопросе по задаче: Как упростить? есть объяснения, но мне кое-что непонятно. 1. Почему в поле класса Human (42-я строка) мы добавляем переменной класса модификатор final? Для чего он? Что делает? Ведь динамический массив по умолчанию длиной 10 элементов и заполнен в данном случае объектами, которые содержат ссылки null. Что я не понимаю? 2. 56 строка подчеркивается красной волнистой линией. Почему? Пытался после package импортировать List - не помогло. 3. 55-56 строкию Цитата из ссылки: то есть с 4 и далее аргумента можно использовать аргументы класса Human, и они будут собраны в единый массив Human[] children. Методом Arrays.asList мы преобразуем этот массив в список и вызовем второй конструктор с полученным набором аргументов. Подчеркнутое не понял. Если есть возможность - разъясните, пожалуйста.