gpt4 book ai didi

Java - 如何避免接口(interface)中的静态和默认方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:38:30 25 4
gpt4 key购买 nike

我的问题比较理论化:

假设我有一个在接口(interface)中使用 staticdefault 方法的 Java 8 项目。我需要摆脱它们,因为我正在将代码移植到 Java 7(假设它是 Android N 之前的 Android 应用程序)。

该怎么做?我知道有 Retrolambda 插件,我成功地使用了它。但我正在考虑通过更改代码来完成的“纯”解决方案。有哪些选择?

我知道我可以从接口(interface)中删除静态和默认方法并将它们放入实现此接口(interface)的抽象类中,然后在任何引用该接口(interface)的地方更改代码(如果我正确理解该过程,这就是 Retrolambda 所做的) .

我的老师曾表示这可以通过 “适当更改接口(interface)定义” 来完成,而无需使用额外的类。但到目前为止,我未能找到解决方案。我尝试将实现直接放入目标类中,但这在我的特定项目中造成了一系列问题。

有人知道我遗漏的一些想法或线索吗?

最佳答案

我认为您在 Java8 项目中实际使用了这样的东西首先值得怀疑。接口(interface)应该保持没有实现。引入默认方法主要是为了 API 向后兼容(如果必须将方法添加到以前版本的接口(interface),并且您不能强制 API 用户更改他们的代码,并且您不喜欢创建 InterfaceV2)。不适用于“日常使用”。

我认为在移植时,您应该只将方法导出到静态 *Util 类。这样您就可以重用它,并且不会破坏接口(interface)的主要原则。

关于Java - 如何避免接口(interface)中的静态和默认方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37479735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com