【发布时间】:2019-01-24 12:54:54
【问题描述】:
我的意思是,java 8 接口中提供的默认方法可以减少应该在实现中编写的代码。天气晴朗。但我不明白这一点,为什么将这个功能添加到语言中可以保护我们免受向后不兼容?
假设我们已经将新方法添加到接口List,那么我们可以简单地在需要的地方实现它(ArrayList、LinkedList 等)事件而没有默认方法实现?
确切的不兼容性隐藏在哪里?没有默认方法可以破坏什么?
这里的问题是关于breaking source compatibility,但我的问题有点不同——关于保存它。
【问题讨论】:
-
请阅读功能接口和流API。这将有助于你理解。
-
@iamrajshah,阅读后我的印象是 JDK 开发人员只是懒得将 List 接口的新方法的实现添加到每个 JDK List 实现中,并决定将其留在接口中。但是现在我知道了哪里可以在其他代码中破坏自定义 List 实现。
标签: java