我想使我的一种方法“不赞成使用” =不再使用。
但是我仍然想在我的API中使用它。我只想向使用该方法的任何人显示“警告”。
我该如何实现?
我想使我的一种方法“不赞成使用” =不再使用。
但是我仍然想在我的API中使用它。我只想向使用该方法的任何人显示“警告”。
我该如何实现?
Answers:
@Deprecated
在方法上使用。不要忘记澄清javadoc字段:
/**
* Does some thing in old style.
*
* @deprecated use {@link #new()} instead.
*/
@Deprecated
public void old() {
// ...
}
reason
,其默认值""
不会受到损害
@deprecated
可以将评论中的消息添加到@Deprecated
(修复所有问题的一个地方)...
同时使用@Deprecated
注释和@deprecated
JavaDoc标签。
该@deprecated
Javadoc标记被用于文档目的。
所述@Deprecated
注释指示编译器,该方法已被弃用。这是Sun / Oracles文档中有关该主题的内容:
使用
@Deprecated
注释不赞成使用类,方法或字段,可以确保当代码使用该程序元素时,所有编译器都将发出警告。相反,@deprecated
尽管Sun编译器当前这样做,但不能保证所有编译器都将始终基于Javadoc标记发出警告。其他编译器可能不会发出此类警告。因此,@Deprecated
依靠@deprecated
Javadoc标记,使用注释生成警告更加可移植。
您可以在如何以及何时弃用API中找到完整的文档。
@deprecated
javadoc标记(在Java 4-中)标记方法时,编译器将方法(类,字段)标记为已弃用,即使没有可用的源,IDE也显示警告。
因为缺少一些小的解释
@Deprecated
在这样的方法上使用注释
/**
* @param basePrice
*
* @deprecated reason this method is deprecated <br/>
* {will be removed in next version} <br/>
* use {@link #setPurchasePrice()} instead like this:
*
*
* <blockquote><pre>
* getProduct().setPurchasePrice(200)
* </pre></blockquote>
*
*/
@Deprecated
public void setBaseprice(int basePrice) {
}
<br/>
{@link #setPurchasePrice()}
您可以做两件事:
@Deprecated
注释到方法中,然后@deprecated
标记添加到方法的javadoc你们两个都应该做!
引用有关此主题的Java文档:
从J2SE 5.0开始,通过使用@Deprecated批注来弃用类,方法或字段。另外,您可以使用@deprecated Javadoc标记告诉开发人员要使用的内容。
使用注释会导致Java编译器在使用不赞成使用的类,方法或字段时生成警告。如果弃用的编译单元使用了弃用的类,方法或字段,则编译器将禁止弃用警告。这使您可以构建旧版API,而不会生成警告。
强烈建议您将Javadoc @deprecated标记与适当的注释一起使用,以解释如何使用新的API。这确保开发人员将拥有从旧API到新API的可行迁移路径。