我想用以下参数创建一个PageableListView:
public PageableListView(final String id, final IModel<? extends List<T>> model
但是第二个参数
final IModel<? extends List<T>> model
使我有些困惑。我有一个列表List<Individual> individualList
,其中有一些我想用于正在创建的PageableListView的属性。我的问题是我不知道该如何进行强制转换或使其成为可接受的参数。这是我正在处理的内容:
List<Individual> individualList = getIndividuals();
WebMarkupContainer datacontainer = new WebMarkupContainer("data");
datacontainer.setOutputMarkupId(true);
add(datacontainer);
PageableListView listview = new PageableListView("rows", individualList, 10) {
@Override
protected void populateItem(ListItem item)
{
Individual individual = item.getModelObject();
item.add(new Label("individual_Id", String.valueOf(individual.getId())));
item.add(new Label("name", individual.getFirstName()));
};
datacontainer.add(listview);
datacontainer.add(new AjaxPagingNavigator("navigator", listview));
datacontainer.setVersioned(false);
在
Individual individual = item.getModelObject();
的行上,它给我Type mismatch: cannot convert from Object to IndividualCache
的错误。 最佳答案
PageableListView具有第二个构造函数,该构造函数仅将List<T>
作为参数:
PageableListView(String id, List<T> list, int itemsPerPage)
请参阅:JavaDoc
但是您已经在使用该构造函数,因此这里确实没有问题。
您的问题是
PageableListView<T>
是泛型类,但是您将其用作raw type。这就是方法getModelObject
仅返回Object
的原因。不要那样做
而是使用泛型参数来指定您的PageableListView应该显示哪种对象:
PageableListView<Individual> listview = new PageableListView<Individual>("rows", individualList, 10)
关于java - PageableListView正确的参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51556523/