几个月来我一直在寻找答案,我尝试了多种方法,包括解压缩 Compressed 文件夹 src.zip 并将其用作 Javadoc 的参数(例如javadoc -sourcepath src com.example.test
:)
这是 JDK 6 Update 24 附带的默认 Javadoc。
假设我正在开发一个实现java.util.Map
接口的新地图。默认情况下,我从 Map 接口覆盖的方法应该从接口继承文档,如果我没记错的话。但是,javadoc 从不这样做。
到目前为止,唯一能解决这个问题的,实际上是对 Java 编写的类进行 javadoc-ing(例如:)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 的调用来自目录。我的路径参数中有 jdk6 bin 目录。javadoc -link http://download.oracle.com/javase/6/docs/api/ com.example
javadoc-test
我期望的两件事是UpperCaseObject.hashCode
继承所有文档,以及UpperCaseObject.toString
从java.lang.Object
. 但是,不幸的是,我没有得到任何文档。
编辑:
好吧,我必须做的是以下事情。这只是一个简单的解决方法。
- 我从 source.zip 中复制了所有源文件,就像您通常这样做一样。
- 我还为每个包制作了包文件。它们包含第一段(带有摘要的段)和第二段,其中写着“有关更多信息,请参阅 Java™ 平台标准版 6 API 规范中的包摘要”。
- 源文件本质上是超类、它们的超类(和接口),以及它们抛出的任何异常也都在同一个包中。唯一的例外是 java.lang,我只需要获取 Object。异常也是需要的,因为除了 java.lang 之外,如果异常与抛出类在同一个包中,则其他包不会链接。
- 我对我正在使用/子类化/抛出异常的所有包进行了 javadoc。
- 我将确保在概述文件中包含有关标准包和我自己的包的一些信息。
不幸的是,我现在只能解决这个问题,但我确信这可能是我的 Java 版本的问题。听起来其他人也有类似的问题,并想出了自己的解决方法。这只是我自己的=)
我仍然会回答,但同时这是最方便的选择。非常感谢!