我想让我的一个方法“deprecated”=不再使用。

但我仍然希望在我的API中有它。我只是想对使用该方法的人显示“警告”。

我怎样才能做到呢?


当前回答

看一下@Deprecated注释。

其他回答

同时使用@Deprecated注释和@Deprecated JavaDoc标记。

@deprecated JavaDoc标记用于文档编制。

@Deprecated注释指示编译器该方法已弃用。以下是在Sun/ oracle文档中关于这个主题的描述:

使用@Deprecated注释来弃用一个类、方法或字段,可以确保所有编译器在代码使用该程序元素时都会发出警告。相比之下,并不能保证所有编译器都会根据@deprecated Javadoc标记发出警告,尽管Sun编译器目前是这样做的。其他编译器可能不会发出这样的警告。因此,使用@Deprecated注释生成警告比依赖@Deprecated Javadoc标记更具可移植性。

你可以在如何和何时弃用api上找到完整的文档

看一下@Deprecated注释。

为您的方法使用@Deprecated注释,您也应该在javadocs中提到它。

使用@Deprecated on方法。不要忘记澄清javadoc字段:

/**
 * Does some thing in old style.
 *
 * @deprecated use {@link #new()} instead.  
 */
@Deprecated
public void old() {
// ...
}

因为缺少一些小的解释

在方法上像这样使用@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()}