我已经搜索了几个月,尝试了多种方法,包括解压缩压缩文件夹src.zip并将其用作Javadoc的参数(例如:
这是随JDK 6 Update 24一起提供的默认Javadoc。
假设我正在开发一个实现
到目前为止,唯一解决这个问题的方法是实际上对Java编写的类进行javadoc(例如:
谢谢 =)如果有些乱,请见谅。这是我第一次使用Stack Overflow。如果这个问题已经被问过了,我也很抱歉。我已经阅读了许多类似的问题,但它们并没有涵盖我想要问的所有内容,而且我发现它们非常令人困惑,因为它们涉及编写自己的Javadoc实现。无论如何,提前感谢您=)
我将此示例(文件名为
javadoc -sourcepath src com.example.test
)。这是随JDK 6 Update 24一起提供的默认Javadoc。
假设我正在开发一个实现
java.util.Map
接口的新地图。如果我没有弄错的话,从Map接口继承的方法应该继承接口的文档。然而,javadoc从未这样做过。到目前为止,唯一解决这个问题的方法是实际上对Java编写的类进行javadoc(例如:
javadoc com.example.text java.util
)。我不想这样做,因为这让人觉得我重写了Java类,但这是唯一的方法吗?如果是这样,我想我只能忍受它,但我的理解是还有另一种方法可以解决这个问题。谢谢 =)如果有些乱,请见谅。这是我第一次使用Stack Overflow。如果这个问题已经被问过了,我也很抱歉。我已经阅读了许多类似的问题,但它们并没有涵盖我想要问的所有内容,而且我发现它们非常令人困惑,因为它们涉及编写自己的Javadoc实现。无论如何,提前感谢您=)
编辑:5月25日4:44
好的 =)如果我理解正确,您想看一个例子。这是一个更简单的例子,我试图看看是否因为我正在尝试一些不应该工作的东西。package com.example;
/**
* A simple class that returns an upper-case string representation.
*/
public class UpperCaseObject {
@Override public int hashCode() {
return super.hashcode();
}
/**
* {@inheritDoc}
*
* <P>The {@code toString} method for class {@code UpperCaseObject} returns
* converted to uppercase.</P>
*
* @see String#toUpperCase()
*/
@Override public String toString() {
return super.toString().toUpperCase();
}
}
我将此示例(文件名为
UpperCaseObject.java
)移动到目录 javadoc-test/com/example
中,并创建了另一个目录 javadoc-test/java/lang
,并将 Object.java
(来自 src.zip)放入其中。
我所做的 javadoc 调用是 javadoc -link http://download.oracle.com/javase/6/docs/api/ com.example
,从目录 javadoc-test
进行。我在路径参数中拥有 jdk6 bin 目录。
我期望的两件事是,UpperCaseObject.hashCode
继承所有文档,以及 UpperCaseObject.toString
继承来自 java.lang.Object
的额外段落之前的所有内容。然而,不幸的是,我没有得到任何文档。
编辑:
好吧,我所要做的就是以下几点。这只是一个简单的解决方法。
- 我像平常一样从source.zip中复制了所有源文件。
- 我还为每个包制作了包文件。它们包含第一个段落(概述)和第二个段落,其中写着“请参阅Java™ Platform,Standard Edition 6 API Specification中的Package Summary以获取更多信息。”
- 源文件基本上是超类、它们的超类(和接口)以及它们抛出的任何异常,这些异常也在同一个包中。唯一的例外是java.lang,我只需要获取Object。异常也是必需的,因为除了java.lang之外,其他包如果异常和抛出类在同一个包中,则无法链接。
- 我用javadoc对我正在使用/子类化/抛出异常的所有包进行了注释。
- 我将确保在概述文件中包括有关标准包和我的自定义包的一些信息。
不幸的是,目前我只能做一些变通措施,但我相信这可能是我的Java版本的问题。听起来其他人也遇到了类似的问题,并想出了自己的变通方法。这只是我的方法 =)
我仍然会接受回答,但在此期间,这是最方便的选择。非常感谢!