java 如何扩展方法?

发布于 2021-11-28 22:37:56 字数 946 浏览 762 评论 9

比如说我每次都要用XSSFSheet 的实例sheet。

XSSFSheet sheet = wb.getSheetAt(0);
sheet.getRow(row).getCell(col).getRichStringCellValue();
但是每次都要用到:
.getRow(row).getCell(col).getRichStringCellValue()//这么长的方法

所以想继承一下这个类,写个自己的方法:

class MySheet extends XSSFSheet{
    public MySheet(XSSFSheet sheet){
        super();
    }
    public XSSFRichTextString getcell(int row,int col){
        return super.getRow(row).getCell(col).getRichStringCellValue();
    }
}
MySheet sheet = (MySheet) wb.getSheetAt(0);//但是父类不能强制转换成子类啊!!

如上,编译没错但是运行出错。

听说C#有类的“扩展方法”不知java如何实现?


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

成熟稳重的好男人 2021-11-29 20:40:33

。。。。  你直接写个方法 传递sheet  return .xx.xxx.xx不就OK了?

眼泪淡了忧伤 2021-11-29 20:40:29

java没有类似C#中的“
扩展方法”,所遇这种简单的事情还是用工具类把,就是相对于c#代码比较臃肿。

左岸枫 2021-11-29 20:40:28

定义一个接口MyInterface,里面定义getcell方法。然后:

MyInterface sheet = (MyInterface) wb.getSheetAt(0);

坏尐絯 2021-11-29 20:40:14

做个工具类调用不就好了,用继承很符合逻辑?

一笔一画续写前缘 2021-11-29 20:40:04

额。。。这样用起来方便而且简洁嘛。。。更符合逻辑无缝使用(*^__^*)

叹沉浮 2021-11-29 20:29:34

你只是需要一个辅助方法而已,至于继承整个类?

晚风撩人 2021-11-29 20:01:09

可是 new MySheet(wb.getSheetAt(0))这样传递给构造函数,也没有用呀。父类没有这样一个构造函数可以用super(sheet)

千笙结 2021-11-29 19:47:48

回复
实际没有必要这样用,能不能继承得看API支持不了,如楼下所说,你只是需辅助方法或包装类而已,不要做复杂了,实现目的就好

北笙凉宸 2021-11-28 23:52:56

自己封闭的类为啥不用呢,MySheet sheet = new MySheet(wb.getSheetAt(0)) ;

多看看Java基础知识吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文