java 类增加属性_java,_java中给类增加属性的问题,java - phpStudy

java中给类增加属性的问题

类在jar包里,不方便直接修改类.. 想自定义一个类继承那个类 增加属性:

public class Page extends ArrayList {

/**

* 不进行count查询

*/

private static final int NO_SQL_COUNT = -1;

/**

* 进行count查询

*/

private static final int SQL_COUNT = 0;

private int pageNum;

private int pageSize;

private int startRow;

private int endRow;

private long total;

private int pages;

public Page(int pageNum, int pageSize) {

this(pageNum, pageSize, SQL_COUNT);

}

public Page(int pageNum, int pageSize, boolean count) {

this(pageNum, pageSize, count ? Page.SQL_COUNT : Page.NO_SQL_COUNT);

}

public Page(int pageNum, int pageSize, int total) {

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;

}

public Page(RowBounds rowBounds, boolean count) {

this(rowBounds, count ? Page.SQL_COUNT : Page.NO_SQL_COUNT);

}

public Page(RowBounds rowBounds, int total) {

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;

}

public List getResult() {

return this;

}

public int getPages() {

return pages;

}

public void setPages(int pages) {

this.pages = pages;

}

public int getEndRow() {

return endRow;

}

public void setEndRow(int endRow) {

this.endRow = endRow;

}

public int getPageNum() {

return pageNum;

}

public void setPageNum(int pageNum) {

this.pageNum = pageNum;

}

public int getPageSize() {

return pageSize;

}

public void setPageSize(int pageSize) {

this.pageSize = pageSize;

}

public int getStartRow() {

return startRow;

}

public void setStartRow(int startRow) {

this.startRow = startRow;

}

public long getTotal() {

return total;

}

public void setTotal(long total) {

this.total = total;

if (this.pageSize > 0) {

this.pages = (int) (total / this.pageSize + ((total % this.pageSize == 0) ? 0 : 1));

} else {

this.pages = (int) total;

}

}

public boolean isCount() {

return this.total > NO_SQL_COUNT;

}

@Override

public String toString() {

return "Page{" +

"pageNum=" + pageNum +

", pageSize=" + pageSize +

", startRow=" + startRow +

", endRow=" + endRow +

", total=" + total +

", pages=" + pages +

'}';

}

}

这是一个分页类,我想增加两个属性:

private int nextPage;

private int previousPage;

自定义一个类来继承:

public class PagePlus extends Page {

private int nextPage;

private int previousPage;

public PagePlus(int pageNum, int pageSize) {

super(pageNum, pageSize);

this.nextPage = super.getPageNum() + 1;

this.previousPage = super.getPageNum() - 1;

}

public int getNextPage() {

return nextPage;

}

public void setNextPage(int nextPage) {

this.nextPage = nextPage;

}

public int getPreviousPage() {

return previousPage;

}

public void setPreviousPage(int previousPage) {

this.previousPage = previousPage;

}

}

程序中是这样写的:

@Override

public PagePlus list(int pageNum, int pageSize) {

PageHelper.startPage(pageNum, pageSize);

PagePlus page = (PagePlus) articleDao.list();

return page;

}

articleDao.list 返回的是List

java.lang.ClassCastException: com.github.pagehelper.Page cannot be cast to util.PagePlus

请问是哪里写的有问题?

相关阅读:

大神帮忙看下20行的python代码,文件io和数据库插入太慢

avoscloud中的ios实时通信 如何知道消息到达?

express生成器生成的项目如何使用 socket.io?

iOS 9 跳转系统设置, 返回后不调用viewWillAppear, 无法刷新页面数据, 谁有思路?

mysql 联合查询在数据库里测试时正确,通过php操作就不对了?

在局域网范围内如何确定应用层数据包之间的请求响应关系?

Vue.js的平行组件之间如何互相通信?

关于backbone.js里的model.set和model.get

zabbix的监控的历史图形

如何删除Android ExpandableListView中某个group item的child item?

angularjs 视频全屏切换

Mysql在插入数据的工作方式。

写直播播放器。是不是我使用插件后。就不用学as?

jquery是如何开发的?

css3 动画问题

js 中参数是按值传递的,但声明对象时又是引用指向某个对象的,该怎么理解?

关于nodejs作为中间层的疑问

如果想成为mysql dba应该看什么书?

AngularJS操作ng-show指令

PHP处理大量数据的问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值