java中给类增加属性的问题

类在jar包里,不方便直接修改类..想自定义一个类继承那个类增加属性:
publicclassPageextendsArrayList{
/**
*不进行count查询
*/
privatestaticfinalintNO_SQL_COUNT=-1;
/**
*进行count查询
*/
privatestaticfinalintSQL_COUNT=0;
privateintpageNum;
privateintpageSize;
privateintstartRow;
privateintendRow;
privatelongtotal;
privateintpages;
publicPage(intpageNum,intpageSize){
this(pageNum,pageSize,SQL_COUNT);
}
publicPage(intpageNum,intpageSize,booleancount){
this(pageNum,pageSize,count?Page.SQL_COUNT:Page.NO_SQL_COUNT);
}
publicPage(intpageNum,intpageSize,inttotal){
super(pageSize>-1?pageSize:0);
this.pageNum=pageNum;
this.pageSize=pageSize;
this.total=total;
this.startRow=pageNum>0?(pageNum-1)*pageSize:0;
this.endRow=pageNum*pageSize;
}
publicPage(RowBoundsrowBounds,booleancount){
this(rowBounds,count?Page.SQL_COUNT:Page.NO_SQL_COUNT);
}
publicPage(RowBoundsrowBounds,inttotal){
super(rowBounds.getLimit()>-1?rowBounds.getLimit():0);
this.pageSize=rowBounds.getLimit();
this.startRow=rowBounds.getOffset();
//RowBounds方式默认不求count总数,如果想求count,可以修改这里为SQL_COUNT
this.total=total;
this.endRow=this.startRow+this.pageSize;
}
publicListgetResult(){
returnthis;
}
publicintgetPages(){
returnpages;
}
publicvoidsetPages(intpages){
this.pages=pages;
}
publicintgetEndRow(){
returnendRow;
}
publicvoidsetEndRow(intendRow){
this.endRow=endRow;
}
publicintgetPageNum(){
returnpageNum;
}
publicvoidsetPageNum(intpageNum){
this.pageNum=pageNum;
}
publicintgetPageSize(){
returnpageSize;
}
publicvoidsetPageSize(intpageSize){
this.pageSize=pageSize;
}
publicintgetStartRow(){
returnstartRow;
}
publicvoidsetStartRow(intstartRow){
this.startRow=startRow;
}
publiclonggetTotal(){
returntotal;
}
publicvoidsetTotal(longtotal){
this.total=total;
if(this.pageSize>0){
this.pages=(int)(total/this.pageSize+((total%this.pageSize==0)?0:1));
}else{
this.pages=(int)total;
}
}
publicbooleanisCount(){
returnthis.total>NO_SQL_COUNT;
}
@Override
publicStringtoString(){
return"Page{"+
"pageNum="+pageNum+
",pageSize="+pageSize+
",startRow="+startRow+
",endRow="+endRow+
",total="+total+
",pages="+pages+
'}';
}
}
这是一个分页类,我想增加两个属性:
privateintnextPage;
privateintpreviousPage;
自定义一个类来继承:
publicclassPagePlusextendsPage{
privateintnextPage;
privateintpreviousPage;
publicPagePlus(intpageNum,intpageSize){
super(pageNum,pageSize);
this.nextPage=super.getPageNum()+1;
this.previousPage=super.getPageNum()-1;
}
publicintgetNextPage(){
returnnextPage;
}
publicvoidsetNextPage(intnextPage){
this.nextPage=nextPage;
}
publicintgetPreviousPage(){
returnpreviousPage;
}
publicvoidsetPreviousPage(intpreviousPage){
this.previousPage=previousPage;
}
}
程序中是这样写的:
@Override
publicPagePlus
list(intpageNum,intpageSize){
PageHelper.startPage(pageNum,pageSize);
PagePlus
page=(PagePlus
)articleDao.list();
returnpage;
}
articleDao.list返回的是List
java.lang.ClassCastException:com.github.pagehelper.Pagecannotbecasttoutil.PagePlus
请问是哪里写的有问题?
慕田峪7331174
浏览 401回答 2
2回答

梦里花落0921

根据JDK的代码publicclassClassCastExceptionextendsRuntimeException可知ClassCastException是RuntimeException的子类你的代码articleDao.list()返回的应该是Long或者是Article的List,而非PagePlus,自然会报异常
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript