【问题标题】:why java 8 use default methods instead of extension methods为什么 java 8 使用默认方法而不是扩展方法
【发布时间】:2013-07-27 23:28:42
【问题描述】:

我想知道 Java 8 中的默认方法与 Scala 中的扩展方法或隐式转换相比有什么好处?例如,我似乎无法使用外部库中的默认方法修改现有代码,这很奇怪。

【问题讨论】:

    标签: java java-8


    【解决方案1】:

    因为它的目的与您描述的用例完全相反。默认方法允许库代码更改其 API,而无需更改和重新编译调用代码。它只是一个帮助 API 和 ABI 兼容性的工具,它不是一个覆盖 3rd 方代码的实现细节的工具。

    【讨论】:

    • 谢谢。但我无法理解其中的原因。为什么他们限制了这么小的增强功能?
    • 嗯,这在我所知道的任何地方都没有真正解释(至少最初的 JSR 规范没有扩展这种行为的任何理由)。但是我想原因是,与 Java 7 相比,这是一个侵入性较小的更改,因此更容易实施和获得批准。
    猜你喜欢
    • 2021-05-10
    • 2015-02-06
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 1970-01-01
    • 2011-04-13
    • 2010-11-01
    相关资源
    最近更新 更多