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

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

我怎样才能做到呢?


当前回答

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

其他回答

你可以做两件事:

将@Deprecated注释添加到方法中 在该方法的javadoc中添加@deprecated标记

你应该两者都做!

引用关于这个主题的java文档:

Starting with J2SE 5.0, you deprecate a class, method, or field by using the @Deprecated annotation. Additionally, you can use the @deprecated Javadoc tag tell developers what to use instead. Using the annotation causes the Java compiler to generate warnings when the deprecated class, method, or field is used. The compiler suppresses deprecation warnings if a deprecated compilation unit uses a deprecated class, method, or field. This enables you to build legacy APIs without generating warnings. You are strongly recommended to use the Javadoc @deprecated tag with appropriate comments explaining how to use the new API. This ensures developers will have a workable migration path from the old API to the new API

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

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

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

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

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

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

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

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

看一下@Deprecated注释。