gpt4 book ai didi

java - 将@Deprecated 注释添加到父类(super class)、子类或两者?

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

我想弃用一个特定的方法。此方法现在需要一个新参数,但我想保留以前的实现以实现向后兼容性。

我应该只在父类(super class)(在 library-api 项目中)、子类(在 library-impl 项目中)或两者上添加 @Deprecated 注释吗?

最佳答案

@Deprecated注释未使用 @Inherited 进行注释.因此注释不会自动应用于继承的方法。

这不一定是个问题,因为通常 IDE 会检查声明的类型。因此,如果您在父类(super class)/接口(interface)上弃用该方法,即使您使用未明确弃用该方法的子类/实现,IDE 也会报错。我的意思是:

SomeType x = new Abc();   // where Abc is an implementation or subclass of SomeType
x.doSomething(); // IDE should still complain if SomeType#doSomething() is deprecated

如果您使用实现者/子类而不是接口(interface)/父类(super class)来进行类型声明,那么您可能需要在实现/覆盖方法上添加一个@Deprecated 注释。不过,很大程度上取决于代码分析器。理论上它仍然可以检查接口(interface)/父类(super class)的弃用情况,即使您不将它用于类型声明也是如此。

Abc x = new Abc();
x.doSomething(); // here you're on your own if Abc#doSomething() is not deprecated

关于java - 将@Deprecated 注释添加到父类(super class)、子类或两者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33255581/

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