使用注释指定应生成哪些类/接口javadoc?

时间:2010-05-07 02:29:26

标签: java javadoc annotations

我有一个java程序,想要为类/接口生成javadoc。但是,我只想为某些类和接口生成javadoc。我只是想知道是否有任何方法可以在每个类/接口的开头添加注释,以指示不应该生成此类/接口javadoc(类似于@no-generate-javadoc)

有人有想法吗?

由于

2 个答案:

答案 0 :(得分:1)

编写自己的doclet非常简单,并且可以准确地为您提供所需的内容。您仍然可以委托标准doclet,因此您的实现只需要包含您的特定更改。

ExcludeDoclet将是一个很好的起点。它从文件中读取排除的类。通过调用ClassDoc上的annotations()方法(实际上它是基类,ProgramElementDoc)获取注释,然后根据所需的排除注释检查这些注释,可以通过注释排除。如果需要,您还可以递归执行超类和实现的接口,

答案 1 :(得分:0)

感谢您提及我们的工具 - DocFlex/Javadoc

顺便说一句,简单地排除班级和成员并不是全部。 生成的JavaDoc必须在此之后保持一致。

例如,假设我们有以下情况:

  • class C1扩展了类C2
  • class C2扩展了类C3
  • class C3包含一个公共方法m() - 应该记录在案

现在,我们假设必须从文档中排除类C3。 方法m()会发生什么? 它应该显示在类C2中声明的文档中! 然后,对于课程C1m()必须显示为继承自班级C2 (而不是来自类C3,因为它实际上在代码中)。

同样的情况是字段,实际上更复杂,因为同名的字段不会过载而是相互影响。例如

  • class C1扩展了类C2
  • class C2实现接口I
  • 班级C2包含私人字段F
  • interface I包含公共字段F - 可能会记录

我们假设必须从文档中排除接口I。 如何处理字段I.F? 其实没什么!它不应该进入文档,因为它被C2.F遮蔽,它是私有的,因此必须是不可见的。

标准Doclet的简单调整(委托)是否解决了这些问题?

我们的工具呢!