我有一些实现已弃用接口的遗留代码。这个特定组件将很快被弃用并自行删除,因此重构以解决编译器警告的根本原因是没有意义的。相反,我想压制它。但是,我不希望压制的范围是整个班级。
代码原来是:
public class Foo
extends
Bar
implements
DeprecatedBaz,
Qux { ... }
DeprecatedBaz 是一个被标记为@Deprecated 的接口,它是一个第三方框架,这意味着我无法删除@Deprecated。我想禁止整个班级的警告,但不反对。基本上我想写:
public class Foo
extends
Bar
implements
@SuppressWarnings("deprecation")
DeprecatedBaz,
Qux { ... }
但是,这是无效的语法,不会解析。所以接下来我希望我可以在导入时做到这一点,但这篇SO 帖子似乎暗示它必须在课堂上完成。
或者,我认为可能将其应用于必须实现接口规定的所有方法可能会解决问题,但这也不起作用。
所以看来我不得不在类级别应用注释:
@SuppressWarnings("deprecation")
public class Foo
extends
Bar
implements
DeprecatedBaz,
Qux { ... }
我不喜欢这样,因为如果有人编辑这个类并引入引用已弃用代码的新代码,则警告将被吞下。
在这种情况下有没有办法限制范围?