java 如何扩展方法?
比如说我每次都要用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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
。。。。 你直接写个方法 传递sheet return .xx.xxx.xx不就OK了?
java没有类似C#中的“
扩展方法”,所遇这种简单的事情还是用工具类把,就是相对于c#代码比较臃肿。
定义一个接口MyInterface,里面定义getcell方法。然后:
MyInterface sheet = (MyInterface) wb.getSheetAt(0);
做个工具类调用不就好了,用继承很符合逻辑?
额。。。这样用起来方便而且简洁嘛。。。更符合逻辑无缝使用(*^__^*)
你只是需要一个辅助方法而已,至于继承整个类?
可是 new MySheet(wb.getSheetAt(0))这样传递给构造函数,也没有用呀。父类没有这样一个构造函数可以用super(sheet)
回复
实际没有必要这样用,能不能继承得看API支持不了,如楼下所说,你只是需辅助方法或包装类而已,不要做复杂了,实现目的就好
自己封闭的类为啥不用呢,MySheet sheet = new MySheet(wb.getSheetAt(0)) ;
多看看Java基础知识吧