目前,有两种方法可以将代码标记为在java中删除。
通过JavaDoc
/**
* @deprecated
*/
或作为注释:
@Deprecated
这是我的问题 - 在使用Eclipse时将方法标记为已弃用时,我发现声明两者都有点太多了。我真的只想使用其中一个。
但是,使用注释会给编译器带来实际有用的附加信息吗?
但是只使用了注释,我无法说明为什么不推荐使用该方法 - 我只能用JavaDoc做到这一点,并且弃用方法而不指出为什么不好。
那么,我可以只使用其中一个吗?或者我真的应该学会指定两者吗?
答案 0 :(得分:71)
你应该同时使用两者。 Annotation允许编译器在使用不推荐使用的方法时显示警告,并且javadoc解释了原因。两者都很重要。
根据Oracle的Java注释tutorial:
当一个元素被弃用时,也应该使用Javadoc @deprecated标记来记录...
答案 1 :(得分:37)
注意: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注释。