我发现,如果用户不添加指向新项目的链接,则不会强制使用deprecation annotation:
中指定否决类,方法或成员字段的能力解决了该问题。 Java支持两种弃用机制:和注解(从J2SE 5.0开始受支持)和Javadoc标记(从1.1开始受支持)。对旧API的现有调用将继续起作用,但是注释会导致编译器在找到对不赞成使用的程序元素的引用时发出警告。 Javadoc标记和相关注释警告用户不要使用不推荐使用的项目,并告诉他们要使用的内容
第一句中@@ deprecated的描述至少应告诉用户何时不推荐使用API 以及使用什么作为替换。
但是替换不是强制性的,也不是警告它不存在
例如,Apache的StringEscapeUtils在某些情况下未指定替换项
public static final String escapeJava(String input)
已弃用。
使用Java字符串规则转义字符串中的字符。...
或直接转到其他不推荐使用的方法
public static final String escapeXml(String input)
已弃用。
请改用escapeXml10(java.lang.String)或escapeXml11(java.lang.String)。
如果没有说明不推荐使用的方法/类的(有效)替代解决方案是什么,是否有任何方法/工具可以发出警告?
附带说明:文档还提供了如何忽略丢失的替换项:
如果成员没有替代者,则@deprecated的参数应为“无替代者”。