我有一个java程序,想要为类/接口生成javadoc。但是,我只想为某些类和接口生成javadoc。我只是想知道是否有任何方法可以在每个类/接口的开头添加注释,以指示不应该生成此类/接口javadoc(类似于@no-generate-javadoc)
有人有想法吗?
由于
答案 0 :(得分:1)
编写自己的doclet非常简单,并且可以准确地为您提供所需的内容。您仍然可以委托标准doclet,因此您的实现只需要包含您的特定更改。
ExcludeDoclet将是一个很好的起点。它从文件中读取排除的类。通过调用ClassDoc
上的annotations()方法(实际上它是基类,ProgramElementDoc)获取注释,然后根据所需的排除注释检查这些注释,可以通过注释排除。如果需要,您还可以递归执行超类和实现的接口,
答案 1 :(得分:0)
感谢您提及我们的工具 - DocFlex/Javadoc
顺便说一句,简单地排除班级和成员并不是全部。 生成的JavaDoc必须在此之后保持一致。
例如,假设我们有以下情况:
C1
扩展了类C2
C2
扩展了类C3
C3
包含一个公共方法m()
- 应该记录在案现在,我们假设必须从文档中排除类C3
。
方法m()
会发生什么?
它应该显示在类C2
中声明的文档中!
然后,对于课程C1
,m()
必须显示为继承自班级C2
(而不是来自类C3
,因为它实际上在代码中)。
同样的情况是字段,实际上更复杂,因为同名的字段不会过载而是相互影响。例如
C1
扩展了类C2
C2
实现接口I
C2
包含私人字段F
I
包含公共字段F
- 可能会记录我们假设必须从文档中排除接口I
。
如何处理字段I.F
?
其实没什么!它不应该进入文档,因为它被C2.F
遮蔽,它是私有的,因此必须是不可见的。
标准Doclet的简单调整(委托)是否解决了这些问题?
我们的工具呢!