gpt4 book ai didi

java - 在java6中向接口(interface)添加新方法而不影响该接口(interface)的现有子类的方法?

转载 作者:行者123 更新时间:2023-11-30 03:44:28 24 4
gpt4 key购买 nike

不久前,我遇到了一种情况,需要在一个接口(interface)中添加一个已被 15 个以上的类使用的方法。在实现时,旧类不需要这个新方法,但其他新类需要这个新方法。这里,需要考虑的是,这个新方法对于旧类来说是可选的,而对于新开发的类来说是强制性的。有哪些方法可以解决这个问题?

我已经解决了,如下所示:我创建了一个新接口(interface),并在该接口(interface)中声明了一个方法,并在新类中使用旧接口(interface)实现了它,并且如果其他旧类需要这个新方法,也会对它们执行相同的操作。

Java8,我们有一个“默认处理这种情况的方法,但是在旧版本的 Java 中还有什么其他方法来解决这种情况?

最佳答案

旧版本的Java没有任何办法解决这个问题。这就是 Java 8 中引入默认方法的原因。

请注意,JVM 会愉快地加载实现接口(interface)的类,即使它实际上并未实现其所有方法(即,如果它是在添加新方法之前编译的):您只会在运行时遇到异常,当调用这些未实现的方法之一。

这就是为什么旧的 JDBC 驱动程序仍然可以在较新的 JRE 中工作,即使它们没有实现所有新的 JDBC 方法...当然,除非您调用这些新方法之一。

关于java - 在java6中向接口(interface)添加新方法而不影响该接口(interface)的现有子类的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26086532/

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