gpt4 book ai didi

java - 删除接口(interface)是否会破坏调用对象方法的代码?

转载 作者:行者123 更新时间:2023-12-03 01:36:01 24 4
gpt4 key购买 nike

我需要在 Java 中进行一些重构,并且需要保持一定程度的二进制兼容性。在这种情况下,我想删除一些遗留接口(interface),这些接口(interface)不再在任何地方使用,并且需要相当大(且已弃用)的外部依赖项。

我有课C实现接口(interface)I ,并且我有在 C 实例上调用方法(在接口(interface)中声明)的代码。 。调用代码知道它正在使用 C ,不仅仅是界面。

 class C implements I {
void theMethod(){} ; // is declared in the interface I
}

C object;
object.theMethod();

当我从类定义中删除接口(interface)(但保留所有方法)时,调用代码(根本不引用接口(interface))是否仍然有效(无需重新编译)?

最佳答案

是的,它会起作用 - 只要它不在任何地方显式引用接口(interface) I 即可。

来自JLS: Resolution of Symbolic References :

The binary representation of a class or interface references other classes and interfaces and their fields, methods, and constructors symbolically, using the binary names (§13.1) of the other classes and interfaces

引用类C的字段/方法的类ClientClass不包含对该类可能实现的接口(interface)I的隐式引用。

关于java - 删除接口(interface)是否会破坏调用对象方法的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1886489/

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