我应该在Java中使用JavaDoc弃用还是注释?

时间:2011-02-18 09:44:06

标签: java annotations javadoc deprecated

目前,有两种方法可以将代码标记为在java中删除。

通过JavaDoc

/**
 * @deprecated
 */

或作为注释:

@Deprecated

这是我的问题 - 在使用Eclipse时将方法标记为已弃用时,我发现声明两者都有点太多了。我真的只想使用其中一个。

但是,使用注释会给编译器带来实际有用的附加信息吗?

但是只使用了注释,我无法说明为什么不推荐使用该方法 - 我只能用JavaDoc做到这一点,并且弃用方法而不指出为什么不好。

那么,我可以只使用其中一个吗?或者我真的应该学会指定两者吗?

5 个答案:

答案 0 :(得分:71)

你应该同时使用两者。 Annotation允许编译器在使用不推荐使用的方法时显示警告,并且javadoc解释了原因。两者都很重要。

根据Oracle的Java注释tutorial

  

当一个元素被弃用时,也应该使用Javadoc @deprecated标记来记录...

答案 1 :(得分:37)

来自horse's mouth

  

注意:Java语言规范   要求编译器发出警告   当类,方法或字段时   标有@Deprecated注释   使用。编译器不是必需的   通过Java语言规范来实现   在课程,方法,   或标有@deprecated的字段   访问Javadoc标签,虽然   Sun编译器目前正在这样做。

所以基本上,如果你想保证会有编译器警告,你需要使用注释。而且由于一些API设计师令人窒息的无能,你需要指定javadoc标签以进行解释。

就个人而言,我会说注释是无用的,在修复之前应该省略,因为任何好的编译器或IDE都会显示带有javadoc标记的警告。

答案 2 :(得分:5)

您应该同时指定。

注释允许编译器了解它并在使用该方法时触发警告。 JavaDoc属性允许开发人员在开始使用它之前了解它。

这是两件非常不同的事情!

答案 3 :(得分:4)

你应该写两个。 @Deprecated Anotation用于编译器,而@deprecated JavaDoc标签用于想要现在为何不推荐使用它的人。

示例可能如下所示:

/**
* @deprecated We dont need this Method because ...
*/
@Deprecated
public void doStuff(){..}

答案 4 :(得分:1)

这可以通过一个好的IDE轻松处理。

Eclipse Neon,例如。当我在方法或字段上创建一个javadoc @deprecated时,自动添加@Deprecated注释。

所以我只需用适当的解释编写javadoc,让IDE在保存文件的那一刻起处理@Deprecated注释。

相关问题