昨天遇到一个问题,字段的类型是List<T>,代码如下:
public class Pager<T> extends BaseBean {
private int pageNo = 1; // 当前页号
private int pageSize = 10; // 页面大小
private List<T> recordList = new ArrayList<T>(); // 记录列表
我调用的代码如下:
List<Object[]> typeValueList = dao.executeSelectSql(sql, lastResult, firstResult);
typeValuePager.setRecordList(typeValueList);
结果typeValuePager.setRecordList一直报错,没找到原因。
今天早上重新用提示才发现,这里需要的类型是List<List<Object[]>>,代码如下,
List<List<Object[]>> result = new ArrayList<List<Object[]>>();
result.add(typeValueList);
再setresult时就没错,这下我意识问题所在了。原来我在新建pager时是这样New的:
Pager<List<Object[]>> typeValuePager = new Pager<List<Object[]>>();
导致我一直放List<Object[]>不行,泛型不会才导致这个问题啊。改成这样就可以了:
Pager<Object[]> typeValuePager = new Pager<Object[]>();
List<Object[]> typeValueList = dao.executeSelectSql(sql, lastResult, firstResult);
int typeValueCount = dao.getEntityCountBySql(sql);
typeValuePager.setRecordList(typeValueList);