繁体   English   中英

需要在 Java 8 中实现默认方法

[英]Need for default method implementation in Java 8

在浏览“防御者方法的需要”的答案时,我遇到了这个答案

您能否详细说明以下在接受的答案中的含义?

您应该能够切换到 Java 8,而无需在您的类中实现新方法。

原始问题的提问者 M Sach 说,不要使用默认方法,只需将默认实现放在抽象类中即可。

回答者 Eran 说这会破坏现有的代码。

例如,假设您有自己的List实现,它是用 Java 7 编写的,它不是从AbstractList继承的。 当您将代码迁移到 Java 8 时,会发生什么? List接口中突然出现了一堆您自己的List实现没有的新方法(这些方法的“默认”实现在AbstractList ,您的类没有继承它)! 您的代码将不再编译。

这意味着在迁移到 Java 8 时,您可能必须为现有类编写新方法。

但是,对于默认方法,默认实现在接口本身中,因此您不必编写新方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM