У меня есть суперкласс по имени DataItem
, в котором много детей, и у детей тоже есть дети. Я динамически устанавливаю тип объекта, но в конце ссылка на тип DataItem
. Вот код, который я использую для определения типа класса:
private DataItem getDataItemUponType(DataSection parent,Element el) {
String style = getItemStyle(parent,el);
if(style!=null) {
if(style.equals("DUZ")) {
return new DataItemPlain();
} else if(style.equals("TVY")) {
return new DataItemPaired();
} else if(style.equals("TVA")) {
return new DataItem();
} else if(style.equals("FRM")) {
return new DataItemForm();
} else if(style.equals("IMG")) {
return new DataItemImage();
} else if(style.equals("CLN")) {
return new DataItemCalendar();
} else if(style.equals("BTN")) {
return new DataItemButton();
} else if(style.equals("ALT")) {
return new DataItemSubRibbon();
}
} else {
// At least return a DataItem.
return new DataItem();
}
return new DataItem();
}
Затем я использую это, чтобы установить мой объект:
DataItem dataItem = getDataItemUponType(parent,element);
Тогда я хочу позвонить из подтипа DataItem
. Как мне это сделать?
Примечание: мне нужно использовать DataItem
, чтобы сделать его абстрактным, у меня не получилось бы.