由于 Javadoc,避免在替换 class 时抑制 "deprecated"

Avoid suppressing "deprecated" in the replacing class due to Javadoc

我有一个旧的 class,我已经用 @Deprecated 注释弃用了它。同时,我制作了另一个 class 来替换已弃用的 class.

在那个新的 class' Javadoc 中,我提到它旨在取代已弃用的 class。这导致已弃用的 class 被导入,并给了我已弃用的​​警告。要删除警告,我必须使用 @SuppressWarnings("deprecation") 注释。结果是我的新 class 看起来像是在使用不推荐使用的东西。

示例:

/**
 * Deprecated class.
 * @deprecated Replaced by @{link ReplacingClass}
 */
@Deprecated 
public class DeprecatedClass {}

替换class:

import com.test.example.DeprecatedClass;

/**
 * This class replaces the deprecated class @{link DeprecatedClass}
 */
@SuppressWarnings("deprecation")
public class ReplacingClass {}

我能做些什么来防止这种情况发生?

没有 导入 class 以在 Javadoc 中引用它。引用 class 有两种选择。您可以使用完全限定的 class 名称,或者如果 class 在搜索 space:

中,则可以使用简单的 class 名称
  1. the current class or interface
  2. any enclosing classes and interfaces, searching closest first
  3. any superclasses and superinterfaces, searching closest first
  4. the current package
  5. any imported packages, classes and interfaces, searching in the order of the import statement

Search order for @See

在您的情况下,导入 (5) 会导致弃用警告,因此您可以只使用已弃用 class 的完全限定 class 名称:

/**
 * This class replaces the deprecated class @{link com.test.example.DeprecatedClass}
 */
public class ReplacingClass {}

或者两个class在同一个包中,只需要去掉import语句即可。