我多次尝试用谷歌搜索这个问题,但找不到确切问题的答案。我还读过这个问题:Does the javadoc tool recognize comments inside methods?
所以我的问题是这个问题的后续问题。我知道默认的 JavaDoc 工具会简单地忽略方法内的任何 javadoc 注释,但是我们是否可以以某种方式让它也读取这些注释,并且可以尝试在我们的客户 doclet/taglet 上处理它们?我也尝试编写自己的 doclet 和 taglet,但由于 JavaDoc 会完全忽略方法内的注释,所以我无法成功。
例如,假设我有以下代码:
public void methodX() {
/**
* @MyTag This is a sample javadoc comment with custom tag
*/
}
有没有办法让JavaDoc不忽略methodX内的注释?如果 javadoc 可以解析并提供注释文本,我可以在自定义 doclet 中处理响应。
尝试此操作的原因: 我想知道我为什么要寻找这样的要求会很有帮助。基本上我们有很多配置驱动的编码,这些配置存储在数据库中(这样我们就可以在运行时简单地更改配置,而不必再次经历 BRD 过程)。因此,我们计划在一个中心位置记录这些配置。我们还认为,不要将代码和文档分开,而是让文档更接近代码本身,这样任何代码更新也可能会更新文档。发布到中心位置可以通过 doclet/taglet 来处理,但前提是 JavaDoc 可以读取方法内的这些注释。
那么是否有可能让 JavaDoc 工具也读取方法内的注释?否则我们将不得不尝试编写我们自己的类似于 JavaDoc 的注释解析器。
最佳答案
所以我做了一些挖掘,发现没有人回答这个问题,似乎人们(也许)不确定这种可能性。
根据我的发现,让 JavaDoc 工具解析方法内的注释似乎不太可行。原因是,JavaDoc 甚至无法解析这些注释文本。现在,我的意思是,JavaDoc 依赖 JDK 编译器(当然是 API)将 Java 代码转换为标记和树,然后从那里获取所有注释。因此,除非您可以修改 JDK 编译器本身以使其“不忽略”方法内的注释,否则您无法使 JavaDoc 读取方法内的注释。
哦!为了解决我们的问题,我们现在限制为我们使用的常量定义带有自定义标签的JavaDocs,并通过自定义 Taglet 处理注释> 处理新标签。
关于java - 我们可以制作JavaDoc工具来解析方法内的注释吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46680643/