查找Java文档已弃用的消息

时间:2018-04-15 22:45:35

标签: java javadoc deprecated

如何在Java文档中导航到有关已弃用类的信息性消息?

我在其他答案中看到过类似的内容:

来自StringTokenizer文档:

  

StringTokenizer是为保持兼容性而保留的旧类   原因虽然在新代码中不鼓励使用它。建议   任何寻求此功能的人都使用String的split方法   或者改为java.util.regex包。

但是,如何在Java文档中获取这条信息性消息?我只能看到顶部的DEPRECATED链接。我需要额外的信息,以便我可以理解它被弃用的原因并使用它的替代方案。

2 个答案:

答案 0 :(得分:3)

没有任何可靠的方法可以做到这一点。您找到的文本是关于课程的非正式建议。此类未正式弃用。不推荐使用意味着Java上下文中非常具体的内容。它比&#34更强大;在新代码" 中不鼓励使用。

如果某个类或类成员在Java中实际已弃用,您将在源代码中看到@Deprecated注释。这就是Java工具链所关注的。在适当的情况下,可能还有一个@deprecated javadoc标记,其中包含替代方案的解释和建议。那就是变成了##;弃用:"前往javadocs。

查找您已识别的示例之类的非正式建议可能需要在Java库代码库或javadoc树中搜索关键短语,例如" legacy"并且"不推荐"。然后,您需要手动过滤掉误报。

答案 1 :(得分:1)

大多数情况下,弃用课程的原因是因为找到了更好的替代方案,或者因为它不再需要。

至于你提到的deprecated link at the top,我认为你的意思是:https://docs.oracle.com/javase/8/docs/api/deprecated-list.html

好吧,就像你说的那样,那些 你会发现所有的信息,而且它们也很具描述性。

让我们以构造函数Date(int year, int month, int day)为例,如果向下滚动到deprecated constructor section,您可以找到以下内容:

  

java.sql.Date(int,int,int)

     

而是使用构造函数Date(长日期)

并且对于JDK中标有@Deprecated注释的每个类/方法/接口都做同样的事情。

此外,对于StringTokenizer,如果您只是在您引用的行下方阅读,则说明如下:

  

以下示例说明了String.split方法的用法   用于将字符串分解为其基本标记:

String[] result = "this is a test".split("\\s");
for (int x=0; x<result.length; x++)
    System.out.println(result[x]);

基本上,不再需要StringTokenizer,因为String对象现在有split方法,这会使StringTokenizer无用。