У меня есть родительский класс и несколько дочерних классов (назовем их parent
и child1
, child2
, child3
и т. д.).
У меня есть функция, которая принимает двумерный массив parents
и сглаживает его до одномерного массива следующим образом:
public parent[] flatten(parent[][] input);
В контексте вызова я знаю, что когда я передаю массив, все элементы имеют один и тот же тип, и этот тип является одним из дочерних типов (в частности, я знаю, КАКОЙ это дочерний тип). Я хочу иметь возможность взять определенный элемент массива и присвоить его переменной соответствующего дочернего типа, например:
child1 c = flatten(input)[0];
Я знаю об утверждениях типа (соответствующее сообщение SO: Утверждение объекта определенного типа), но я не могу найти способ действительно присвоить переменную с правильным типом, если утверждение успешно. Возможно ли такое в Java? Я знаю, что это возможно и в других языках, например в Go.