目前,有两种方法可以在 java 中将代码标记为已弃用。
通过 JavaDoc
/**
* @deprecated
*/
或作为注释:
@Deprecated
这是我的问题 - 在使用 Eclipse 时将方法标记为已弃用时,我发现两者都声明有点过多。我真的只想使用其中之一。
但是,使用注解是否会给编译器提供实际有用的附加信息?
但仅使用注释,我无法说明为什么不推荐使用该方法 - 我只能使用 JavaDoc 来做到这一点,并且在不指定原因的情况下不推荐使用方法是不好的。
那么,我可以只使用其中一个吗?还是我真的应该学会同时指定两者?
你应该同时使用两者。 Annotation 允许编译器在使用不推荐的方法时显示警告,javadoc 解释了原因。两者都很重要。
根据 Oracle 的 Java 注释 tutorial:
当一个元素被弃用时,它也应该使用 Javadoc @deprecated 标记来记录......
注意:Java 语言规范要求编译器在使用标有 @Deprecated 注释的类、方法或字段时发出警告。 Java 语言规范不要求编译器在访问标有 @deprecated Javadoc 标记的类、方法或字段时发出警告,尽管 Sun 编译器目前这样做。
所以基本上,如果你想保证会有编译器警告,你需要使用注解。而且由于某些API设计者的无能,您还需要指定javadoc标签以进行解释。
就个人而言,我会说注释是无用的,应该在修复之前将其省略,因为任何好的编译器或 IDE 也会显示带有 javadoc 标记的警告。
你应该两个都写。 @Deprecated 注释用于编译器,@deprecated JavaDoc 标记用于想知道为什么不推荐使用的人。
一个示例可能如下所示:
/**
* @deprecated We dont need this Method because ...
*/
@Deprecated
public void doStuff(){..}
您应该同时指定两者。
注释让编译器知道它并在使用该方法时触发警告。 JavaDoc 属性让开发人员在开始使用它之前了解它。
这是两种截然不同的东西!
这可以通过一个好的 IDE 轻松处理。
Eclipse Neon,例如。当我在方法或字段上创建 javadoc @deprecated 时,会自动添加 @Deprecated 注释。
因此,我只需编写带有适当解释的 javadoc,并在我保存文件的那一刻,让 IDE 负责添加 @Deprecated 注释。
不定期副业成功案例分享
@SuppressWarnings("deprecation")
来控制