我正在编写自己的Java8 Stream实现,并希望从原始java.util.stream.Stream
接口继承Javadocs。但是我无法让它工作。生成的Javadoc只显示我的留档,而不显示扩展Stream接口的留档。
例如,该方法的javadoc只包含文本“一些附加信息”,而不包含来自流接口的文档。
/**
* {@inheritDoc}
* Some additional information.
*/
@Override
public Stream<T> filter(Predicate<? super T> predicate) {
// ... my stream implementation...
}
这是我对maven javadoc插件的配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.1</version>
<configuration>
<links>
<link>http://docs.oracle.com/javase/8/docs/api/</link>
</links>
</configuration>
</plugin>
我是否错过了此配置中的某些内容?我在maven编译器插件中将源代码和目标代码设置为1.8。因此,根据maven javadoc插件的文档,应该自动检测java API。
Stack Overflow上也有类似的问题,但那里的答案似乎没有帮助。
Tunaki的答案很好,但是从Java10开始,你有一个更好的选择。如果你把--override-method=摘要
传递给Javadoc工具,它会把所有继承的方法推送到下面的“在类X中声明的方法”部分。这将列出继承的方法。单击方法名称将使用户转到基类中的Javadoc定义。
看见https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8187386背景信息。
也就是说,javadoc
只复制源路径内类的注释。来自方法注释继承:
注意:继承方法的源文件必须位于“源路径”选项指定的路径上,才能复制文档注释。类及其包都不需要在命令行上传入。这与1.3版形成对比。n和早期版本,其中类必须是有文档记录的类。
但是,JDK的源代码不在源代码路径中,因此{code>{@inheritDoc}不会复制它。它们需要明确添加;Javadoc常见问题有以下条目:
从J2SE继承注释-您的代码还可以自动从J2SE中的接口和类继承注释。您可以通过解压缩SDK附带的src.zip
文件(但是它不包含所有源文件)来做到这一点,并将其路径添加到-ourcepath
。当javadoc
在您的代码上运行时,它将根据需要从这些源文件中加载doc注释。例如,如果您代码中的一个类实现了java.lang.可比
,则您实现的compareTo(Object)
方法将继承来自java.lang.可比
的doc注释。
所以,为了让它发挥作用:
子包来仅指定我们的包。或者,我们可以使用excludePackageNames来排除JDK包
JDK(至少是Oracle JDK)还使用了新的Javadoc条目,即apiNote、implSpec和implNote。这些是需要使用参数添加的自定义标记
这里是一个示例配置,其中JDK源的路径是(您也可以使用环境变量、由概要文件设置的属性等),并且您自己的源文件都在包my中。包装:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.1</version>
<configuration>
<sourcepath>/path/to/jdk/sources:${basedir}/src/main/java</sourcepath>
<subpackages>my.package</subpackages>
<tags>
<tag>
<name>apiNote</name>
<placement>a</placement>
<head>API Note:</head>
</tag>
<tag>
<name>implSpec</name>
<placement>a</placement>
<head>Implementation Requirements:</head>
</tag>
<tag>
<name>implNote</name>
<placement>a</placement>
<head>Implementation Note:</head>
</tag>
</tags>
</configuration>
</plugin>
生成Javadoc,例如使用mvn Javadoc:Javadoc将正确解析
{@inheritDoc}
。
在面向对象的程序设计中,定义一个新的 class 的时候,可以从某个现有的 class 继承,新的 class 称为子类,而被继承的 class 称为基类、父类或超类。 Python 中继承的语法如下: class Parent: pass class Child(Parent): pass 在第 1 行,定义了父类 Parent; 在第 4 行,定义了子类 Child,语法
主要内容:可继承的 POM 元素Maven 在设计时,借鉴了 Java 面向对象中的继承思想,提出了 POM 继承思想。 当一个项目包含多个模块时,可以在该项目中再创建一个父模块,并在其 POM 中声明依赖,其他模块的 POM 可通过继承父模块的 POM 来获得对相关依赖的声明。对于父模块而言,其目的是为了消除子模块 POM 中的重复配置,其中不包含有任何实际代码,因此父模块 POM 的打包类型(packaging)必须是 po
问题内容: 我想从Javadoc实现的接口继承Javadoc 。我在Javadoc命令中包含了源代码,并正确继承了文档。 现在,我想知道是否可以使它生成的链接指向Web上的文档,而不是在我的网站上复制它,即“ Specified by:”链接将链接到外部页面。 这可能吗? 问题答案: 有可能,是的。为了能够包含继承的文档,必须在javadoc的sourcepath中找到接口A的源,但不应在传递给用
我正在自己学习swift,但我无法让这个代码运行,我正在尝试创建一个类“Inhabitant”,它继承了Person类的一个新的“Country”属性,有两个初始值设定项:-一个接受firstname和lastname,并将Country设置为空String-一个接收firstname,lastname和country,并创建String类型的计算属性描述,该描述返回由空格分隔的名字、姓氏和国家
由于未创建javadocs而失败。所以我试着跑 我和我看到它失败了,因为源代码中的javadoc注释没有定义所有的参数和返回值。错误的格式如下: 然而,这曾经起作用。那是什么改变了? 当我搜索参数additionalParam时,它不会出现。我搞不懂这怎么会起作用。搜索答案有些人说使用我正在使用的东西,有些人说使用AdditionalJOption。当Javadoc标记不完整时,请参见Maven在
1、定义类的继承 说到继承,你一定会联想到继承你老爸的家产之类的。 类的继承也是一样。 比如有一个旧类,是可以算平均数的。然后这时候有一个新类,也要用到算平均数,那么这时候我们就可以使用继承的方式。新类继承旧类,这样子新类也就有这个功能了。 通常情况下,我们叫旧类为父类,新类为子类。 首先我们来看下类的继承的基本语法: class ClassName(BaseClassName): <st