📄 javadoc- java api 文档生成器.htm
字号:
<DT><B>参见:</B>
<DD><U>Java Spec</U> </DD></DL></BLOCKQUOTE>
<DT><B><CODE>@see</CODE></B>
<VAR>package.class</VAR><CODE>#</CODE><VAR>member</VAR> <VAR>label</VAR>
<DD>添加带可见文本 <VAR>label</VAR> 的链接,它指向 Java 语言中指定名字的文档。其中 <VAR>label</VAR>
是可选的;如果省略,则名字将作为可见文本出现,而且嵌入在 <CODE><code></CODE> HTML
标记中。当想要缩写可见文本或不同于名字的可见文本时,可使用 label。
<P><A name=packageclassmember><!-- --></A>
<UL type=disc>
<LI><B><VAR>package.class</VAR><CODE>#</CODE><VAR>member</VAR></B> 是
Java 语言中的任何有效名字 -- 包名、类名、接口名、构造函数名、方法名或域名 -- 除了用 hash
字符(<CODE>#</CODE>)取代成员名前面的点之外。如果该名字位于带文档的类中,则 Javadoc
将自动创建到它的链接。要创建到外部引用类的链接,可使用 <A
href="http://www.iplab.is.tsukuba.ac.jp/~liuxj/jdk1.2/zh/docs/tooldocs/solaris/javadoc.html#link"><CODE>-link</CODE></A>
选项。使用另两种 <CODE>@see</CODE> 形式的任何一种引用不属于引用类的名字的文档。第一个参数将在 <A
href="http://www.iplab.is.tsukuba.ac.jp/~liuxj/jdk1.2/zh/docs/tooldocs/solaris/javadoc.html#specifyingname">指定名字</A>
中详细介绍。
<LI><B><VAR>label</VAR></B> 是可选文本,它是链接的可见标签。<VAR>label</VAR> 可包含空格。如果省略
<VAR>label</VAR>,则将显示 <I>package.class.member</I>,并相对于当前类和包适当缩短。-- 参见 <A
href="http://www.iplab.is.tsukuba.ac.jp/~liuxj/jdk1.2/zh/docs/tooldocs/solaris/javadoc.html#shortened">如何显示名字</A>。
<LI>空格是 <VAR>package.class</VAR><CODE>#</CODE><VAR>member</VAR> 和
<VAR>label</VAR> 之间的分界符。括号内的空格不表示标签的开始,因此在方法各参数之间可使用空格。 </LI></UL>
<P><B>示例</B> - 在该示例中,<CODE>Character</CODE> 类中的 <CODE>@see</CODE> 标记引用
<CODE>String</CODE> 类中的 <CODE>equals</CODE> 方法。该标记包括两个参数:
名字“<CODE>String#equals(Object)</CODE>”和标签“<CODE>equals</CODE>”。. </P>
<BLOCKQUOTE><PRE> /**
* @see String#equals(Object) equals
*/
</PRE></BLOCKQUOTE>
<P>标准 doclet 将产生类似如下的 HTML 文档: </P>
<BLOCKQUOTE><PRE><dl>
<dt><b>参见:</b>
<dd><a href="../../java/lang/String#equals(java.lang.Object)">equals</a>
</dl>
</PRE></BLOCKQUOTE>
<P>它在浏览器中看起来像如下内容,其中标签是可见链接文本: </P>
<BLOCKQUOTE>
<DL>
<DT><B>参见:</B>
<DD><U>equals</U> </DD></DL></BLOCKQUOTE>
<P><A name=specifyingname></A></P>
<P><B>指定名字</B> - <VAR>package.class</VAR><CODE>#</CODE><VAR>member</VAR>
名可以是全限定的,例如 <CODE>java.lang.String#toUpperCase()</CODE>,也可以不是全限定的,例如
<CODE>String#toUpperCase()</CODE> 或 <CODE>#toUpperCase()</CODE>。如果不是全限定的,则
Javadoc 使用正常 Java 编译器搜索次序查找它,在 <A
href="http://www.iplab.is.tsukuba.ac.jp/~liuxj/jdk1.2/zh/docs/tooldocs/solaris/javadoc.html#seesearchorder">@see
的搜索次序</A> 中将进一步介绍。名字可以在括号内包含空格,例如在方法参数之间。</P>
<P>当然使用较短的“部分限定”名字的优点是键入更少,并且源代码中的混乱更少。下表显示的不同的名字形式,其中 <VAR>Class</VAR>
可以为类或接口,<VAR>Type</VAR> 可以为类、接口、数组或 基本数据类型,而 <VAR>method</VAR>
可以为方法或构造函数。</P>
<TABLE cellSpacing=0 cellPadding=5 border=1>
<TBODY>
<TR bgColor=#cccccc>
<TD><B><CODE>@see</CODE> <I>package.class#member</I> 的典型形式</B>
</TD></TR>
<TR>
<TD vAlign=top><B>引用当前类的成员</B><BR><CODE>@see</CODE>
<CODE>#</CODE><VAR>field</VAR><BR><CODE>@see</CODE>
<CODE>#</CODE><VAR>method(Type, Type,...)</VAR><BR><CODE>@see</CODE>
<CODE>#</CODE><VAR>method(Type argname, Type
argname,...)</VAR><BR><BR><B>引用当前包或导入包中的其他类</B><BR><CODE>@see</CODE>
<VAR>Class</VAR><CODE>#</CODE><VAR>field</VAR><BR><CODE>@see</CODE>
<VAR>Class</VAR><CODE>#</CODE><VAR>method(Type,
Type,...)</VAR><BR><CODE>@see</CODE>
<VAR>Class</VAR><CODE>#</CODE><VAR>method(Type argname, Type
argname,...)</VAR><BR><CODE>@see</CODE>
<VAR>Class</VAR><BR><BR><B>引用其他包</B>(全限定)<BR><CODE>@see</CODE>
<VAR>package.Class</VAR><CODE>#</CODE><VAR>field</VAR><BR><CODE>@see</CODE>
<VAR>package.Class</VAR><CODE>#</CODE><VAR>method(Type,
Type,...)</VAR><BR><CODE>@see</CODE>
<VAR>package.Class</VAR><CODE>#</CODE><VAR>method(Type argname, Type
argname,...)</VAR><BR><CODE>@see</CODE>
<VAR>package.Class</VAR><BR><CODE>@see</CODE> <VAR>package</VAR>
</TD></TR></TBODY></TABLE>
<P>下述说明适用于上表:
<UL type=circle>
<LI>第一套形式(没有类和包)将导致 Javadoc 仅搜索当前类层次。它将查找当前类或接口、其父类或超接口、或其包含类或接口的成员(<A
href="http://www.iplab.is.tsukuba.ac.jp/~liuxj/jdk1.2/zh/docs/tooldocs/solaris/javadoc.html#seesearchorder">搜索步骤
1-3</A>)。它不会搜索当前包的其余部分或其他包(搜索步骤 4-5)。
<LI>如果任何方法或构造函数输入为不带括号的名字,例如 <CODE>getValue</CODE>,且如果没有具有相同名字的域,则
Javadoc 将正确创建到它的链接,但是将显示警告信息,提示添加括号和参数。如果该方法被重载,则 Javadoc
将链接到它搜索到的第一个未指定方法。
<LI>对于所有形式,内部类必须指定为
<VAR>outer</VAR><CODE>.</CODE><VAR>inner</VAR>,而不是简单的 <VAR>inner</VAR>。
<LI>如上所述,hash 字符(<CODE>#</CODE>)而不是点(<CODE>.</CODE>)用于分隔类和成员。这使 Javadoc
可正确解析,因为点还用于分隔类、内部类、包和子包。当 hash
字符(<CODE>#</CODE>)是第一个字符时,它是绝对必要。但是,在其他情况下,Javadoc
通常不严格,并允许在不产生歧义时使用点号,但是它将显示警告。 </LI></UL>
<P><A name=seesearchorder></A><B>@see 的搜索次序</B> - Javadoc
将处理出现在源文件(.java)、包文件(package.html)或概述文件(overview.html)中的 <CODE>@see</CODE>
标记。在后两种文件中,必须完全限定用 <CODE>@see</CODE> 提供的名字。在源文件中,可指定全限定或部分限定的名字。</P>
<P>当 Javadoc 在 <CODE>.java</CODE> 中遇到<I>不是</I>全限定的 <CODE>@see</CODE>
标记时,它按照与 Java 编译器相同的次序搜索指定名字(Javadoc 将不检测名字空间二义性,因为它假定源代码不会有这些错误) 搜索次序在
<I>Java 语言规范</I> 第六章“名字”中正式定义,由“内部类规范”修改。Javadoc
在所有相关和导入类和包中搜索该名字。特别地,它按如下次序搜索:
<OL>
<LI>当前类或接口
<LI>任何包含类和接口,先搜索最近的
<LI>任何父类和超接口,先搜索最近的
<LI>当前包
<LI>任何导入包、类和接口,按导入语句中的次序搜索 </LI></OL>
<P>Javadoc 继续对它遇到的每个类重复步骤 1-3 进行搜索,直到找到匹配项。这就是说,当它搜索当前类及其包含类 E 之后,它在搜索 E
的包含类之前先搜索 E 的父类。<!-- The order of steps 2 and 3 above don't matter.A compiler error occurs if a member is both in an enclosing classand a superclass, according to Atul. -->
在步骤 4 和 5 中,Javadoc 不按任何指定的次序(该次序取决于特定编译器)搜索包中的类或接口。在步骤 5 中,Javadoc 将在 in
java.lang 中查找,因为它是由所有程序自动导入的。</P>
<P>Javadoc 没有必要在子类中查找,也没有必要在其他包中查找,即使它们的文档在同一次运行中生成。例如,如果
<CODE>@see</CODE> 标记位于 <CODE>java.awt.event.KeyEvent</CODE> 类中并引用
<CODE>java.awt</CODE> 包中的名字,则 javadoc 将不查找该包,除非该类导入它。</P>
<P><A name=shortened></A><B>如果显示名字</B> - 如果省略 <VAR>label</VAR>,则将显示
<I>package.class.member</I>。一般地,将相对于当前类和包适当缩短它。这里“缩短”是指仅显示必要的名字,使之尽可能短。例如:
</P>
<TABLE cellSpacing=0 cellPadding=5 border=1>
<TBODY>
<TR bgColor=#cccccc>
<TD><B>方法包含 @see Tag</B> </TD>
<TD><B>@see 标记</B> </TD>
<TD><B>显示为</B> </TD></TR>
<TR vAlign=top>
<TD><CODE>String.toUpperCase()</CODE> </TD>
<TD><CODE>@see String#toLowerCase()</CODE> <BR><FONT
size=-1>(引用相同类的成员)</FONT> </TD>
<TD><CODE>toLowerCase()</CODE> <BR><FONT size=-1>(省略类名)</FONT>
</TD></TR>
<TR vAlign=top>
<TD><CODE>String.toUpperCase()</CODE> </TD>
<TD><CODE>@see Character#toLowerCase(char)</CODE> <BR><FONT
size=-1>(引用其他类的成员)</FONT> </TD>
<TD><CODE>Character.toLowerCase(char)</CODE> <BR><FONT
size=-1>(包括类名)</FONT> </TD></TR></TBODY></TABLE>
<P><A name=seeexamples><!-- --></A><B>@see 示例</B><BR>右边的注释显示了当
<CODE>@see</CODE> 标记位于其他包(例如
<CODE>java.applet.Applet</CODE>)的类中时,如何显示名字。</P><PRE> 参见:
@see java.lang.String // <U>String</U> <!-- [1] -->
@see java.lang.String The String class // <U> String 类</U> <!-- [2] -->
@see String // <U>String</U> <!-- [3] -->
@see String#equals(Objetc) // <U>String.equals(Object)</U> <!-- [4] -->
@see String#equals // <U>String.equals(java.lang.Object)</U> <!-- [5] -->
@see java.lang.Object#wait(long) // <U>java.lang.Object.wait(long)</U> <!-- [6] -->
@see Character#MAX_RADIX // <U>Character.MAX_RADIX</U> <!-- [7] -->
@see <a href="spec.html">Java Spec</a> // <U>Java 规范</U> <!-- [8] -->
@see "The Java Programming Language" // "Java 编程语言" <!-- [9] -->
</PRE>
<P><IMG
src="E:\参考资料\JAVA\J2SE\doc\javadoc- Java API 文档生成器.files\fro2E(1).tmp"> <A
name=@since></A></P>
<DT><B><CODE>@since</CODE></B> <VAR>since-text</VAR>
<DD>用 <VAR>since-text</VAR>
指定的内容给生成的文档添加“Since”标题。该文本没有特殊内部结构。该标记表示该改变或功能自 <VAR>since-text</VAR>
所指定的软件版本之后就存在了。例如:<PRE> @since JDK1.1
</PRE>
<P><A name=@serial></A></P>
<DT><B><CODE>@serial</CODE></B> <VAR>field-description</VAR>
<DD>用于缺省可序列化域的文档注释中。
<P>可选的 <VAR>field-description</VAR>
增强了文档注释对域的描述能力。该组合描述必须解释该域的意义并列出可接受值。如需要,该描述可有多行。</P>
<P>应该对自 <CODE>Serializable</CODE> 类的最初版本之后添加的每个可序列化域添加 <CODE>@since</CODE>
标记。</P>
<P>要获得私有类的序列化形式,可使用 <CODE>-private</CODE> 选项。因而,要生成所有公共类和私有类的序列化形式,可用
<CODE>-private</CODE> 选项运行 javadoc。</P>
<P>有关如何使用这些标记的信息,以及相应示例,参见 <EM>Java 对象序列化规范</EM> 中第 1.6 节“<A
href="http://www.iplab.is.tsukuba.ac.jp/~liuxj/jdk1.2/zh/docs/guide/serialization/spec/serial-arch.doc6.html">建立类的可序列化域和数据的文档</A>。</P>
<P><!-- For FCS, we will add a link in the manpage that will point to the Serialization Enhancements page, where we will add a section called "Guidelines for Using Serialization" or something to that effect. We have a file on our internal website that contains most of the information, including how to deal with the warnings, but it is written for an internal audience. We will clean it up and add it to the new topic for FCS. -jendrock--><A
name=@serialField></A></P>
<DT><B><CODE>@serialField</CODE></B> <VAR>field-name</VAR>
<VAR>field-type</VAR> <VAR>field-description</VAR>
<DD>建立 <CODE>Serializable</CODE> 类的 <CODE>serialPersistentFields</CODE>
成员的 <CODE>ObjectStreamField</CODE> 组件的文档。应该对每个
<CODE>ObjectStreamField</CODE> 使用一个 <CODE>@serialField</CODE> 标记。
<P><A name=@serialData></A></P>
<DT><B><CODE>@serialData</CODE></B> <VAR>data-description</VAR>
<DD><VAR>data-description</VAR> 建立数据(尤其是 <CODE>writeObject</CODE>
方法所写入的可选数据和 <CODE>Externalizable.writeExternal</CODE> 方法写入的全部数据)序列和类型的文档。
<P><CODE>@serialData</CODE> 标记可用于
<CODE>writeObject</CODE>、<CODE>readObject</CODE>、<CODE>writeExternal</CODE>
和 <CODE>readExternal</CODE> 方法的文档注释中。</P>
<P><A name=@throws></A></P>
<DT><B><CODE>@throws</CODE></B> <VAR>class-name</VAR>
<VAR>description</VAR>
<DD><CODE>@throws</CODE> 与 <CODE>@exception</CODE> 标记同义。用
<VAR>class-name</VAR> 和 <VAR>description</VAR> 文本给生成的文档添加“抛出”子标题。其中
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -