Java 具有相同超类的子对象列表
我正在尝试设计一个模型,其中我有一个具有相同超类的子对象列表。这个模型将是一个模型。超级类是:Java 具有相同超类的子对象列表,java,list,listview,inheritance,wicket,Java,List,Listview,Inheritance,Wicket,我正在尝试设计一个模型,其中我有一个具有相同超类的子对象列表。这个模型将是一个模型。超级类是: public class Element implements Serializable { private static final long serialVersionUID = 10121L; private String value; public Element(String value) { this.value = value;
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() + "]";
}
}
其中一个子类是:
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);
this.userMonitorMap=new ArrayList列表项本身不是列表中的对象,它包含一个包含您的对象的模型。您应该使用:
Model<Element> elementModel = columnItem.getModel();
看看这些
您的代码应为:
ListView行=新建ListView(“行”,userMonitorMap){
@覆盖
受保护的void populateItem(ListItem rowItem){
Listposting编译器错误可能会有所帮助
Element element = columnItem.getModelObject();
@Override
protected void populateItem(ListItem rowItem) {
List<? extends Element> columnMap = rowItem.getModelObject();
ListView column = new ListView("column", columnMap) {
@Override
protected void populateItem(ListItem columnItem) {
Element element = columnItem.getModelObject();
}
};
rowItem.add(column);
}
};