为什么赢了';Javadoc使我的子类从Java';什么课?
几个月来我一直在寻找答案,我尝试了多种方法,包括解压缩压缩文件夹src.zip并将其用作Javadoc的参数(例如:为什么赢了';Javadoc使我的子类从Java';什么课?,java,javadoc,subclass,inheritdoc,Java,Javadoc,Subclass,Inheritdoc,几个月来我一直在寻找答案,我尝试了多种方法,包括解压缩压缩文件夹src.zip并将其用作Javadoc的参数(例如:Javadoc-sourcepath src com.example.test) 这是JDK 6 Update 24附带的默认Javadoc 假设我正在开发一个实现java.util.map接口的新映射。默认情况下,如果我没有弄错的话,我从Map接口重写的方法应该继承接口的文档。然而,javadoc从不这样做 到目前为止,解决这个问题的唯一方法是使用Java编写类(例如:javad
Javadoc-sourcepath src com.example.test
)
这是JDK 6 Update 24附带的默认Javadoc
假设我正在开发一个实现java.util.map
接口的新映射。默认情况下,如果我没有弄错的话,我从Map接口重写的方法应该继承接口的文档。然而,javadoc从不这样做
到目前为止,解决这个问题的唯一方法是使用Java编写类(例如:javadoc com.example.text Java.util
)。我不想这样做,因为这让我看起来像是重写了Java类,但这是唯一的方法吗?如果是的话,我想我可以接受它,但我的理解是,有另一种方法可以做到这一点
如果这有点乱,我很抱歉。这是我第一次使用堆栈溢出。如果已经有人问过这个问题,我也很抱歉。我读过很多类似的问题,它们并没有涵盖我想问的所有问题,我发现它们非常令人困惑,因为它们涉及到编写自己的Javadoc实现。无论如何,感谢您在advanced=)
编辑: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();
}
}
package.com.example;
/**
*返回大写字符串表示形式的简单类。
*/
公共类大写对象{
@重写公共int hashCode(){
返回super.hashcode();
}
/**
*{@inheritardoc}
*
*类{@code UpperCaseObject}的{@code toString}方法返回
*已转换为大写。
*
*@see String#toUpperCase()
*/
@重写公共字符串toString(){
返回super.toString().toUpperCase();
}
}
我将这个示例(文件名为UpperCaseObject.java
)移动到一个目录javadoc test/com/example
,我还制作了另一个目录javadoc test/java/lang
,将Object.java
(来自src.zip)放在其中
我对javadoc的调用是javadoc-link com.example
目录下的javadoctest
。我的path参数中有jdk6 bin目录
我期望的两件事是UpperCaseObject.hashCode
继承所有文档,以及UpperCaseObject.toString
在java.lang.Object
的额外段落之前的所有内容。然而,不幸的是,我没有得到任何文档
编辑:
嗯,我必须做的是以下几点。这只是一个简单的解决办法
我仍然会接受答案,但这是目前最方便的选择。多谢各位 继承方法的源文件在运行时需要位于javadoc工具的-sourcepath上。您不需要在命令行上传递继承的类。您可以做的一件事是使用以下选项链接到这些类的官方Javadoc: 这将允许Javadoc将SDK的类视为“外部引用类”。从Javadoc文档中: 在javadoc运行期间未生成文档的引用类。换句话说,这些类不会传递到命令行上的Javadoc工具中。生成的文档中指向这些类的链接称为外部引用或外部链接。例如,如果只在java.awt包上运行Javadoc工具,则java.lang中的任何类(如Object)都是外部引用类。外部引用类可以使用-link和-linkoffline选项链接到。外部引用类的一个重要属性是其源注释通常不可用于Javadoc运行。在这种情况下,无法继承这些注释。 请注意,这些类的Javadoc仍然不会被继承。但是,您现在可以链接到它,如下所示:
public class MyMap implements java.util.Map {
...
/**
* @see java.util.Map#isEmpty()
*/
@Override
public boolean isEmpty() {
...
}
}
[编辑]
@请参见
标记以进行说明。Javadoc应该自动生成一个“Specified By”链接,这样您就可以完全省略Javadoc注释。如果继承的类在sourcepath中,而不是像Ted写的那样直接记录在包列表中,那么它通常应该可以工作。如果它不能以这种方式工作,则必须显示javascript的示例调用,以及directo的草图
public class MyMap implements java.util.Map {
...
/**
* @see java.util.Map#isEmpty()
*/
@Override
public boolean isEmpty() {
...
}
}