学习Java 8默认方法。 像互联网上的任何其他资源一样,此链接指出:
“在最严格的意义上”,默认方法是退步,因为它们允许你“污染”接口代码。但是它们提供了最优雅和实用的方式以允许向后兼容性。这使得Oracle更轻松地更新所有集合类,并使您能够为Lambda重新设计您现有的代码。
我的理解是,Java 8开发/设计人员提供了接口中的默认方法,以便所有实现类不必无谓地重写相同的行为,从而提供向后兼容性。例如:如果ForEach方法不是默认方法,则每个集合实现类都必须实现它。同意。
为了克服这一点,我们可以有一个类提供这些默认方法的实现,然后实现类如arraylist等可以扩展该类。通过这种方式,我们既可以满足Java的基础知识(即可重用性),也可以满足抽象化(即保持接口污染较少)
我相信Java 8开发/设计人员已经想到了这一点,因为他们更加博学,我在这里遗漏了一些东西。能否有人帮助,使我们开发人员也可以掌握这个重大的变化?