是否有任何工具可以让您“查询”(而不是简单地搜索)JDK 文档?例如:
- 显示所有已弃用的方法。
- 显示特定类的所有子类(而不是仅显示文档提供的直接子类)。
- 显示所有返回(比如)线程的方法。
- 显示给定方法名称的所有实例,无论签名如何。
提出这个问题的原因是我混淆了两个我偶尔使用的完全不相关的方法:Pattern.matches() 和 Matcher.matches()。然后我发现还有PathMatcher.matches(),它也有完全不相关的用途。这让我想知道 JDK 中还有多少其他“matches()”方法。然后我认为可能还有其他有用的查询也可以针对 JDK 文档运行。
拥有这样一个工具的唯一动机是通过有趣或有用(至少对我而言)但不容易获得的信息来帮助我提高我对 Java 的了解。这question is similar ,但我正在寻找比简单搜索更复杂的东西。
预计到达时间:Marcel 下面关于使用 Doclet API 的建议提供了一个很好的解决方案,无需太多努力。
ETA2:重新确定弃用的方法,我刚刚发现 Oracle 已经在 JavaDoc API 中解决了这个问题 here
最佳答案
会不会是您从错误的角度来处理这个问题?为什么不直接解析 JDK 的源代码或字节码,而不是解析已转换的源代码表示形式的文档?
- > parsing byte code
- > parsing source code
- 使用 Doclet API 连接到 Javadoc 工具(即让 Javadoc 为您解析代码)
根据您的需要,您可能还想走一条真正简单的路,让 reflections library 扫描您的类路径。 .
Reflections reflections = new Reflections("some.package");
Set<Method> voidMethods = reflections.getMethodsReturn(Thread.class);
话虽如此,但不要忘记任何优秀的 IDE 都可以挖掘出您似乎正在寻找的大量信息(例如,搜索名为 matches
的方法)。
关于java - 查询Java的JDK文档元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20577413/