内容简介:该的Javadoc ™工具解析声明和文档注释一组Java源文件并生成对应的一组描述(默认)的HTML页面的公有和受保护类,嵌套类(但不是匿名内部类),接口,构造,方法和领域。您可以使用它来生成API(应用程序编程接口)文档或一组源文件的实现文档。 您可以在整个包,单个源文件或两者上运行Javadoc工具。记录整个包时,您可以使用-subpackages 从顶级目录递归遍历,或者传递明确的包名列表。记录单个源文件时,会传入source(.java)文件名列表。示例在本文档的末尾给出。接下来介绍Javadoc如
该的Javadoc ™工具解析声明和文档注释一组 Java 源文件并生成对应的一组描述(默认)的HTML页面的公有和受保护类,嵌套类(但不是匿名内部类),接口,构造,方法和领域。您可以使用它来生成API(应用程序编程接口)文档或一组源文件的实现文档。 您可以在整个包,单个源文件或两者上运行Javadoc工具。记录整个包时,您可以使用-subpackages 从顶级目录递归遍历,或者传递明确的包名列表。记录单个源文件时,会传入source(.java)文件名列表。示例在本文档的末尾给出。接下来介绍Javadoc如何处理源文件。
2. 命令用法
用法: javadoc [options] [packagenames] [sourcefiles] [@files] -overview <file> 从 HTML 文件读取概览文档 -public 仅显示 public 类和成员 -protected 显示 protected/public 类和成员 (默认值) -package 显示 package/protected/public 类和成员 -private 显示所有类和成员 -help 显示命令行选项并退出 -doclet <class> 通过替代 doclet 生成输出 -docletpath <path> 指定查找 doclet 类文件的位置 -sourcepath <pathlist> 指定查找源文件的位置 -classpath <pathlist> 指定查找用户类文件的位置 -cp <pathlist> 指定查找用户类文件的位置 -exclude <pkglist> 指定要排除的程序包列表 -subpackages <subpkglist> 指定要递归加载的子程序包 -breakiterator 计算带有 BreakIterator 的第一个语句 -bootclasspath <pathlist> 覆盖由引导类加载器所加载的 类文件的位置 -source <release> 提供与指定发行版的源兼容性 -extdirs <dirlist> 覆盖所安装扩展的位置 -verbose 输出有关 Javadoc 正在执行的操作的信息 -locale <name> 要使用的区域设置, 例如 en_US 或 en_US_WIN -encoding <name> 源文件编码名称 -quiet 不显示状态消息 -J<flag> 直接将 <flag> 传递到运行时系统 -X 输出非标准选项的提要 通过标准 doclet 提供: -d <directory> 输出文件的目标目录 -use 创建类和程序包用法页面 -version 包含 @version 段 -author 包含 @author 段 -docfilessubdirs 递归复制文档文件子目录 -splitindex 将索引分为每个字母对应一个文件 -windowtitle <text> 文档的浏览器窗口标题 -doctitle <html-code> 包含概览页面的标题 -header <html-code> 包含每个页面的页眉文本 -footer <html-code> 包含每个页面的页脚文本 -top <html-code> 包含每个页面的顶部文本 -bottom <html-code> 包含每个页面的底部文本 -link <url> 创建指向位于 <url> 的 javadoc 输出的链接 -linkoffline <url> <url2> 利用位于 <url2> 的程序包列表链接至位于 <url> 的文档 -excludedocfilessubdir <name1>:.. 排除具有给定名称的所有文档文件子目录。 -group <name> <p1>:<p2>.. 在概览页面中, 将指定的程序包分组 -nocomment 不生成说明和标记, 只生成声明。 -nodeprecated 不包含 @deprecated 信息 -noqualifier <name1>:<name2>:... 输出中不包括指定限定符的列表。 -nosince 不包含 @since 信息 -notimestamp 不包含隐藏时间戳 -nodeprecatedlist 不生成已过时的列表 -notree 不生成类分层结构 -noindex 不生成索引 -nohelp 不生成帮助链接 -nonavbar 不生成导航栏 -serialwarn 生成有关 @serial 标记的警告 -tag <name>:<locations>:<header> 指定单个参数定制标记 -taglet 要注册的 Taglet 的全限定名称 -tagletpath Taglet 的路径 -charset <charset> 用于跨平台查看生成的文档的字符集。 -helpfile <file> 包含帮助链接所链接到的文件 -linksource 以 HTML 格式生成源文件 -sourcetab <tab length> 指定源中每个制表符占据的空格数 -keywords 使程序包, 类和成员信息附带 HTML 元标记 -stylesheetfile <path> 用于更改生成文档的样式的文件 -docencoding <name> 指定输出的字符编码 复制代码
eg:
javadoc -encoding UTF-8 -charset UTF-8 TestJavaDoc.java 正在加载源文件TestJavaDoc.java... 正在构造 Javadoc 信息... 标准 Doclet 版本 1.8.0_161 正在构建所有程序包和类的树... 正在生成./TestJavaDoc.html... 正在生成./package-frame.html... 正在生成./package-summary.html... 正在生成./package-tree.html... 正在生成./constant-values.html... 正在构建所有程序包和类的索引... 正在生成./overview-tree.html... 正在生成./index-all.html... 正在生成./deprecated-list.html... 正在构建所有类的索引... 正在生成./allclasses-frame.html... 正在生成./allclasses-noframe.html... 正在生成./index.html... 正在生成./help-doc.html... 复制代码
3. 主要标记简介
3.1 @see
参考。 添加“另请参见”标题,其中包含指向引用的链接/文本条目/参考类。文档注释可以包含任意数量的 @see标记,这些标记都分组在同一标题下。此标记在任何文档注释中都有效:概述,包,类,接口,构造函数,方法或字段。要将句子中的内嵌链接插入包,类或成员,请参阅{@link}。以下是@see三种最常见的使用
3.1.1 @see "字符串"
添加字符串的文本条目。没有生成链接。该字符串是书籍或其他对URL不可用的信息的引用。Javadoc工具通过查找double-quote(")作为第一个字符来区别于以前的情况。eg:
@see“Java编程语言” 复制代码
3.1.2 @see <a href="URL#值">标签 </a>
加URL#value定义的链接。该 URL#值是相对或绝对URL。Javadoc工具通过查找小于号(<)作为第一个字符来区别于其他情况。eg:
@see <a href="https//blog.catalpaflat.cn/"> CatalpaFlat </a> 复制代码
3.1.3 @see package.class #成员 标签
用于标明参考某个类或某个类的成员(字段/方法/构造函数等)
eg:
引用当前类 @see #字段 @see #方法(Type,Type,...) @see #方法的成员(类型argname,类型argname,...) @see #构造函数(Type,Type,...) @see #构造函数(类型argname,类型argname,.. 。) 引用当前或导入的包中的另一个类 @see Class #字段 @see Class #方法(Type,Type,...) @see 类#方法(类型argname,Type argname,...) @see 类#构造函数(Type,Type,...) @see 类#构造函数(类型argname,类型argname,...) @see Class.NestedClass @see 类 引用另一个包中的元素(完全限定) @see package.Class #字段 @see package.Class #方法(Type,Type,...) @see package.Class #方法(类型argname,类型argname,...) @see package.Class #构造函数(Type,Type,...) @see package.Class #构造函数(类型argname,Type argname,...) @see package.Class.NestedClass @see package.Class @see package 复制代码
3.2 @author
使用-author选项时,将“Author”条目与指定的name-text一起添加到生成的文档中。文档注释可能包含多个@author标记。您可以为每个@author标记指定一个名称或为每个标记指定多个名称 在前一种情况下,Javadoc工具,在名称之间插入逗号()和空格。在后一种情况下,只需将整个文本复制到生成的文档而不进行解析。因此,如果需要除逗号之外的本地化名称分隔符,则可以每行使用多个名称。
eg:
@author CatalpaFlat 复制代码
3.3 @version
@version标记的参数的Java软件约定是SCCS字符串“%I%,%G%”,1.39, 02/28/97当从SCCS中检出文件时,它转换为类似“ ”(mm / dd / yy)的内容。
文档注释可能包含多个@version标记。如果有意义,您可以为每个@version标记指定一个版本号,或为每个标记指定 多个版本号。在前一种情况下,Javadoc工具,在名称之间插入逗号()和空格。在后一种情况下,只需将整个文本复制到生成的文档而不进行解析。因此,如果需要除逗号之外的本地化名称分隔符,则可以每行使用多个名称。
eg:
@version 1.0.0, 13 Dec 2014 复制代码
3.4 {@link}
- 格式:{@link package.class #成员 标签}
- 插入内容:插入带有可见文本标签的内嵌链接,该链接指向引用类的指定包、类或成员名称的文档。
- 此标记在所有文档注释中都有效:概述,包,类,接口,构造函数,方法和字段,包括任何标记的文本部分(eg: @return,@ param和@deprecated)。
- 和@see的区别:两者都需要相同的引用,并且接受{package.class #成员 和标签}完全相同的语法。主要区别在于 {@link}生成内联链接而不是将链接放在“另请参见”部分。此外,{@link} 标记以花括号开头和结尾,以将其与内嵌文本的其余部分分开。如果您需要在标签内使用“}”,请使用HTML实体表示法&#125;
- {@link}句子中允许的标签数量没有限制。您可以在任何文档注释的主要描述部分或任何标记的文本部分(eg: @deprecated,@return或@param)中使用此标记。
eg:
// 引用getComponentAt(int, int)该方法的注释 Use the {@link #getComponentAt(int, int) getComponentAt} method. 复制代码
3.5 {@value}
3.5.1 在{@value}静态字段的doc注释中使用(无任何参数)时,它显示该常量的值:
/** * The value of this constant is {@value}. */ public static final String SCRIPT_START = "<script>" 复制代码
3.5.2 当在任何doc注释中与参数package.class #field一起使用时,它会显示指定常量的值:
/** * Evaluates the script starting with {@value #SCRIPT_START}. */ public String evalScript(String script) { } 复制代码
3.6 @param
参数名称 描述。
将具有指定参数名称的参数 后跟指定描述添加到“参数”部分。在编写文档注释时,可以将描述继续到多行。此标记仅在方法,构造函数或类的doc注释中有效。 参数名称可以是方法或构造函数中的参数名称,也可以是类,方法或构造函数的类型参数的名称。在此参数名称周围使用尖括号指定使用类型参数。
eg:
//类范型 /** * @param <E> Type of element stored in a list */ public interface List<E> extends Collection<E> { } //方法上 /** * @param string the string to be converted * @param type the type to convert the string to * @param <T> the type of the element * @param <V> the value of the element */ <T, V extends T> V convert(String string, Class<T> type) { } 复制代码
3.7 @return
添加带有描述文本的“返回”部分。该文本应描述返回类型和允许的值范围。此标记仅在方法的doc注释中有效。 有关更多详细信息,请参阅 编写@return标记。
eg:
/** * * @return String */ private String obtain(){ return "CatalpaFlat"; } 复制代码
3.8 @throws、@exception
在@throws和@exception标签是同义词。使用类名和 描述文本向生成的文档添加“throw”子标题。类名是可通过该方法抛出的异常的名称。此标记仅在方法或构造函数的doc注释中有效。如果未完全指定此类,则Javadoc工具使用搜索顺序查找此类。@throws对于相同或不同的例外,可以在给定的doc注释中使用多个 标签。
为了确保记录所有已检查的异常,如果 @throwsthrows子句中的异常不存在标记,则Javadoc工具会自动将该异常添加到HTML输出(没有描述),就像使用@throws标记记录一样。
@throws仅当在重写方法中显式声明异常时,才会将文档从重写方法复制到子类。从接口方法复制到实现方法也是如此。您可以使用{@inheritDoc}强制@throws继承文档。
3.9 {@inheritDoc}
将文档从“copies”可继承类或可实现的接口继承(复制)到此标记位置的当前doc注释中。这允许您在继承树的更高位置编写更多通用注释,并在复制的文本周围编写。 此标记仅在文档注释中的这些位置有效:
- 在方法的主要描述块中。在这种情况下,主要描述从层次结构中的类或接口复制。
- 在方法的@return,@ param和@throws标签的文本参数中。在这种情况下,标记文本将从层次结构中的相应标记复制。
有关如何在继承层次结构中找到注释的更准确说明,请参见自动复制方法注释。请注意,如果缺少此标记,则根据该部分中描述的规则自动继承注释。
4. 各文档注释
4.1 包文档标签
描述:包标签是可以出现在包的文档注释中的标签(位于名为package.htmlor 的源文件中 package-info.java)。该 @serial标签只能用这里使用 include或exclude说法。
可用标签 ️:
包标签 | 描述 |
---|---|
@see | 参考 |
@since | since-text(用于当前项目版本) |
@serial | 描述 |
@author | 作者 |
@version | 版本 |
{@link} | 入带有可见文本标签的内嵌链接,该链接指向引用类的指定包,类或成员名称的文档。 |
{@linkplain} | {@link}与链接标签相同,除了代码字体外,以纯文本显示。标签是纯文本时很有用 |
{@docRoot} | 表示从任何生成的页面生成的文档(目标)根目录的相对路径(版权标明) |
结构:
- 该包的简要功能描述
- 该包的详细描述(@link /@code)
- 新建该包时当前项目的版本 @since
- 作者 @author
- 参考现有类 @see
eg:
/** * Provides the classes necessary to create an * applet and the classes an applet uses * to communicate with its applet context. * <p> * The applet framework involves two entities: * the applet and the applet context. * An applet is an embeddable window (see the * {@link java.awt.Panel} class) with a few extra * methods that the applet context can use to * initialize, start, and stop the applet. * * @since 1.0 * @see java.awt */ package java.lang.applet; 复制代码
4.2 类和接口文档标记
可用标签 ️:
包标签 | 描述 |
---|---|
@see | 参考 |
@since | since-text(用于当前项目版本) |
@serial | 描述 |
@deprecated | 设置过期 |
@author | 作者 |
@version | 版本 |
{@link} | 入带有可见文本标签的内嵌链接,该链接指向引用类的指定包,类或成员名称的文档。 |
{@linkplain} | {@link}与链接标签相同,除了代码字体外,以纯文本显示。标签是纯文本时很有用 |
{@docRoot} | 表示从任何生成的页面生成的文档(目标)根目录的相对路径(版权标明) |
结构:
- 该类的简要功能描述
- 该类的详细描述
- 作者 @author
- 撰写该类时类版本 @version
- 撰写该类时当前项目的版本 @since
- 参考现有类 @see
eg:
/** * A class representing a window on the screen. * For example: * <pre> * Window win = new Window(parent); * win.show(); * </pre> * * @author CatalpaFlat * @version 1.15, 13 Dec 2006 * @see java.awt.BaseWindow * @see java.awt.Button */ class Window extends BaseWindow { ... } 复制代码
4.3 字段文档标签
可用标签 ️:
包标签 | 描述 |
---|---|
@see | 参考 |
@since | since-text(用于当前项目版本) |
@deprecated | 设置过期 |
@serial | 描述 |
@serialField | 字段类型/字段描述 |
{@link} | 入带有可见文本标签的内嵌链接,该链接指向引用类的指定包,类或成员名称的文档。 |
{@linkplain} | {@link}与链接标签相同,除了代码字体外,以纯文本显示。标签是纯文本时很有用 |
{@docRoot} | 表示从任何生成的页面生成的文档(目标)根目录的相对路径(版权标明) |
{@value} | 常量的值 |
结构:
- 描述 {@link} / {@linkplain}
- @serial/ @serialField
- {@value}
- {@docRoot}
- @see
eg:
/** * The X-coordinate of the component. * * @see #getLocation() */ int x = 1263732; 复制代码
4.4 构造函数和方法文档标记
除了 @return它们不能出现在构造函数中,并且 {@inheritDoc}具有某些限制。该@serialData标签只能用于文档注释中使用某些序列化方法。
可用标签 ️:
包标签 | 描述 |
---|---|
@see | 参考 |
@since | since-text(用于当前项目版本) |
@param | 参数信息 |
@return | 返回信息 |
@deprecated | 设置过期 |
@throws 和 @exception | 异常 |
@serialData | |
{@link} | 入带有可见文本标签的内嵌链接,该链接指向引用类的指定包,类或成员名称的文档。 |
{@linkplain} | {@link}与链接标签相同,除了代码字体外,以纯文本显示。标签是纯文本时很有用 |
{@docRoot} | 表示从任何生成的页面生成的文档(目标)根目录的相对路径(版权标明) |
{@inheritDoc} | 继承父级的注释标签 |
eg:
/** * Returns the character at the specified index. An index * ranges from <code>0</code> to <code>length() - 1</code>. * * @param index the index of the desired character. * @return the desired character. * @exception StringIndexOutOfRangeException * if the index is not in the range <code>0</code> * to <code>length()-1</code>. * @see java.lang.Character#charValue() */ public char charAt(int index) { ... } 复制代码
5. 示例
/** * Represents an HTTP request or response entity, consisting of headers and body. * * <p>Typically used in combination with the {@link org.springframework.web.client.RestTemplate}, * like so: * <pre class="code"> * HttpHeaders headers = new HttpHeaders(); * headers.setContentType(MediaType.TEXT_PLAIN); * HttpEntity<String> entity = new HttpEntity<String>(helloWorld, headers); * URI location = template.postForLocation("http://example.com", entity); * </pre> * or * <pre class="code"> * HttpEntity<String> entity = template.getForEntity("http://example.com", String.class); * String body = entity.getBody(); * MediaType contentType = entity.getHeaders().getContentType(); * </pre> * Can also be used in Spring MVC, as a return value from a @Controller method: * <pre class="code"> * RequestMapping("/handle") * public HttpEntity<String> handle() { * HttpHeaders responseHeaders = new HttpHeaders(); * responseHeaders.set("MyResponseHeader", "MyValue"); * return new HttpEntity<String>("Hello World", responseHeaders); * } * </pre> * * @author Arjen Poutsma * @author Juergen Hoeller * @since 3.0.2 * @see org.springframework.web.client.RestTemplate * @see #getBody() * @see #getHeaders() */ public class HttpEntity<T> { /** * The empty {@code HttpEntity}, with no body or headers. */ public static final HttpEntity<?> EMPTY = new HttpEntity<>(); /** * Create a new, empty {@code HttpEntity}. */ protected HttpEntity() { this(null, null); } /** * Create a new {@code HttpEntity} with the given headers and no body. * @param headers the entity headers */ public HttpEntity(MultiValueMap<String, String> headers) { this(null, headers); } /** * Returns the body of this entity. */ @Nullable public T getBody() { return this.body; } /** * Indicates whether this entity has a body. */ public boolean hasBody() { return (this.body != null); } @Override public boolean equals(@Nullable Object other) { if (this == other) { return true; } if (other == null || other.getClass() != getClass()) { return false; } HttpEntity<?> otherEntity = (HttpEntity<?>) other; return (ObjectUtils.nullSafeEquals(this.headers, otherEntity.headers) && ObjectUtils.nullSafeEquals(this.body, otherEntity.body)); } } 复制代码
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 构建一个混合的费用跟踪应用程序
- 构建安全计划 提升应用程序安全能力
- 第三章-构建Markdown应用程序
- 构建大型 React 应用程序的最佳实践
- 构建大型 React 应用程序的最佳实践
- 构建Kubernetes有状态应用程序的不同方法
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
About Face 3
Alan Cooper、Robert Reimann、David Cronin / John Wiley & Sons / 2007-5-15 / GBP 28.99
* The return of the authoritative bestseller includes all new content relevant to the popularization of how About Face maintains its relevance to new Web technologies such as AJAX and mobile platforms......一起来看看 《About Face 3》 这本书的介绍吧!