Я пытаюсь создать модель, в которой у меня есть список List дочернего объекта, имеющего тот же суперкласс Эта модель будет моделью ListView . Супер класс это:
public class Element implements Serializable {
private static final long serialVersionUID = 10121L;
private String value;
public Element(String value) {
this.value = value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
@Override
public String toString() {
return "Element [value=" + value + "]";
}
}
Один из подклассов:
public class DateElement extends Element {
private static final long serialVersionUID = 10122L;
private DateTime date;
public DateElement(String value, DateTime date) {
super(value);
this.date = date;
}
public DateTime getDate() {
return date;
}
public void setDate(DateTime date) {
this.date = date;
}
@Override
public String toString() {
return "DateElement [date=" + date + ", value=" + getValue() + "]";
}
}
Я создаю экземпляр списка как:
this.userMonitorMap = new ArrayList<List<? extends Element>>(0);
Добавление списка DateElement в userMonitorMap как:
List<DateElement> dateElements = getDateElements();
userMonitorMap.add(dateElements);
До этой части у меня нет проблем. Но у населения ListView есть проблема, фрагмент кода:
ListView row = new ListView("row", userMonitorMap) {
@Override
protected void populateItem(ListItem rowItem) {
List<? extends Element> columnMap = (List<? extends Element>) rowItem;
ListView column = new ListView("column", columnMap) {
@Override
protected void populateItem(ListItem columnItem) {
Element element = (Element) columnItem; //The compile time error is here
}
};
rowItem.add(column);
}
};
Я прокомментировал проблему в своем коде. Как мне этого добиться? Какие изменения мне нужны?
IDE затмения красным цветом отмечена эта строка и сообщение об ошибке: Невозможно привести от ListItem к элементу
Спасибо и всего наилучшего.