我希望将我的某个方法“弃用” = 不再使用。
但我仍希望在我的API中保留它。我只想向使用该方法的任何人显示“警告”。
我该如何实现这一目标?
我希望将我的某个方法“弃用” = 不再使用。
但我仍希望在我的API中保留它。我只想向使用该方法的任何人显示“警告”。
我该如何实现这一目标?
在方法上使用@Deprecated
。
不要忘记添加@deprecated
Javadoc标签:
/**
* Does some thing in old style.
*
* @deprecated use {@link #new()} instead.
*/
@Deprecated
public void old() {
// ...
}
""
的属性 reason
不会有害。 - asgs@Deprecated
注释中能够添加@deprecated
消息(一个地方修复所有问题)... - U. Windl请同时使用@Deprecated
注解和@deprecated
JavaDoc标签。
@deprecated
JavaDoc标签用于文档记录目的。
@Deprecated
注解指示编译器该方法已弃用。以下是Sun/Oracle的相关文档:
使用
@Deprecated
注解来弃用类、方法或字段,确保所有编译器在代码使用该程序元素时都会发出警告。相比之下,不能保证所有编译器都会基于@deprecated
Javadoc标签发出警告,尽管Sun编译器目前可以这样做。其他编译器可能不会发出此类警告。因此,使用@Deprecated
注解生成警告比依赖@deprecated
Javadoc标签更具可移植性。
您可以在何时如何弃用API中找到完整的文档。
@deprecated
Javadoc标记(在Java 4-中)标记方法时,编译器会将该方法(类、字段)标记为已弃用,并且IDE会显示警告,即使没有源代码也是如此。 - Amir Pashazadeh由于缺少一些次要解释
可以像这样在方法上使用@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
标签从 J2SE 5.0 开始,您可以使用 @Deprecated 注解来弃用类、方法或字段。另外,您可以使用 @deprecated Javadoc 标签告诉开发人员应该使用什么代替。
使用注解会导致 Java 编译器在使用被弃用的类、方法或字段时生成警告。如果已弃用的编译单元使用了被弃用的类、方法或字段,则编译器会抑制弃用警告。这使得您可以构建遗留 API 而不会产生警告。
强烈建议您使用 Javadoc 的 @deprecated 标签,并提供适当的注释来说明如何使用新的 API。这样可以确保开发人员有一个可行的迁移路径,从旧的 API 过渡到新的 API。
请看一下@Deprecated
注解。
/**
* @deprecated
* explain here why the method was deprecated, suggest alternate option to
* use
*/
Deprecated, for removal: This API element is subject to removal in a future version. since 3.0.0 in favor of bstractCompositeHealthContributorConfiguration(Function)