不断发展的接口
考虑一下你开发的名为DoIt的接口:
public interface DoIt { void doSomething(int i, double x); int doSomethingElse(String s); }
假设稍后你要向DoIt添加第三个方法,这样现在接口变为:
public interface DoIt { void doSomething(int i, double x); int doSomethingElse(String s); boolean didItWork(int i, double x, String s); }
如果进行此更改,那么实现旧DoIt接口的所有类都将中断,因为它们不再实现旧接口,依赖此接口的程序员将大声抗议。
尝试预测接口的所有用途,并从一开始就完全指定它,如果要向接口添加其他方法,可以使用多个选项,你可以创建一个扩展DoIt的DoItPlus接口:
public interface DoItPlus extends DoIt { boolean didItWork(int i, double x, String s); }
现在,你的代码用户可以选择继续使用旧接口或升级到新接口。
或者,你可以将新方法定义为默认方法,以下示例定义名为didItWork的默认方法:
public interface DoIt { void doSomething(int i, double x); int doSomethingElse(String s); default boolean didItWork(int i, double x, String s) { // Method body } }
请注意,你必须提供默认方法的实现,你还可以为现有接口定义新的静态方法,具有实现使用新的默认或静态方法增强的接口的类的用户不必修改或重新编译它们以适应额外方法。
上一篇:将接口用作类型 下一篇:默认方法文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/72879.html
摘要:前后端分离的开发方式在最近几年突然火起来,松哥认为有两方面的原因前端的发展。不变其实除了前后端交互方式发生变化之外,其他的地方都是不变的。 事情的起因是这样的,有个星球的小伙伴向邀请松哥在知乎上回答一个问题,原题是: 前后端分离的时代,Java后台程序员的技术建议? 松哥认真看了下这个问题,感觉对于初次接触前后端分离的小伙伴来说,可能都会存在这样的疑问,于是决定通过这篇文章和大家聊一...
摘要:自制力好的人,估计在保存后会翻出来看两眼,过几天又忘得一干二净了。多思考学会思考,养成多思考的习惯。以项目来驱动自己学习,整个过程将会有趣得多。后语以上就是我对自学的几点建议,希望对你们有帮助。 微信公众号:一个优秀的废人如有问题或建议,请后台留言,我会尽力解决你的问题。 showImg(https://segmentfault.com/img/remote/1460000018208...
将接口用作类型 定义新接口时,你将定义新的引用数据类型,你可以在任何可以使用任何其他数据类型名称的地方使用接口名称,如果定义类型为接口的引用变量,则分配给它的任何对象都必须是实现接口的类的实例。 作为示例,这里是一种用于查找一对对象中的最大对象的方法,用于从实现Relatable的类实例化的任何对象: public Object findLargest(Object object1, Object...
Java™ 教程 Java教程是为JDK 8编写的,本页面中描述的示例和实践没有利用在后续版本中引入的改进。 Java教程是希望使用Java编程语言创建应用程序的程序员的实用指南,其中包括数百个完整的工作示例和数十个课程,相关课程组被组织成教程。 覆盖基础知识的路径 这些教程以书籍的形式提供,如Java教程,第六版,前往Amazon.com购买。 入门 介绍Java技术和安装Java开发软件并使用...
摘要:所以要想做好中级软件测试工程师,第一步就是能够完成接口测试。通常情况下,接口测试最多还是使用工具来完成原因无他,高效。 想来我26岁才正式投身进入软件测试行业;通过...
阅读 2846·2023-04-25 19:08
阅读 1398·2021-11-16 11:45
阅读 1913·2021-10-13 09:40
阅读 3931·2021-09-30 09:47
阅读 2394·2019-08-30 15:44
阅读 2206·2019-08-30 13:03
阅读 1349·2019-08-30 12:56
阅读 1868·2019-08-26 14:04