Javadoc:"Methods inherited from" 和 "Methods declared in" 之间的区别
Javadoc: Difference between "Methods inherited from" and "Methods declared in"
JDK Java Java < 10 的文档有一个名为 "Methods inherited from" 的部分,其中列出了在父 class / 接口中声明的方法.但是从 Java 10 开始,此部分称为 "Methods declared in".
比较:
它们之间有区别还是这只是部分名称的变化?
在 Java 10 中,选项 --override-methods (detail|summary)
被添加到 javadoc
命令中:
- Release notes
- JDK-8157000:功能请求
- JDK-8187386:跟踪添加到 javadoc
目的是在实现或覆盖方法时减少噪音,但文档保持不变。
模式
detail
模式(默认)
当您使用 javadoc
而不指定 override-methods
时,detail
模式是默认模式。
它的行为与之前生成文档的方式相同:
- 如果一个方法没有被覆盖,它将在 "Methods inherited from" 部分。
- 如果一个方法被覆盖,它将被记录在 "Method Detail" 下,无论其签名或文档是否也被更改。
summary
模式
- 如果一个方法被覆盖并且它的文档被更改,它将被记录在"Method Detail".
下
- 否则会列在"Methods declared in"下。
summary
模式现在用于生成 JDK 文档 (JDK-8189706)。
请注意,此模式当前存在错误,因为它忽略了对应该记录在案的方法签名的一些更改,请参阅 JDK-8223607。
结论
您将看到 "Methods inherited from" 或 "Methods declared in" 部分。
当比较两个文档(一个 "inherited from",另一个 "declared in")相同的 class 时,"inherited from" 的文档可能会在 "Method Detail" 下列出更多方法,而对于 "declared in" 部分,一些方法改为在 "declared in" 部分。
所以是的,它们之间是有区别的。
例子
可以看到行为上的差异,例如 java.time.temporal.ChronoUnit
class:
JDK Java Java < 10 的文档有一个名为 "Methods inherited from" 的部分,其中列出了在父 class / 接口中声明的方法.但是从 Java 10 开始,此部分称为 "Methods declared in".
比较:
它们之间有区别还是这只是部分名称的变化?
在 Java 10 中,选项 --override-methods (detail|summary)
被添加到 javadoc
命令中:
- Release notes
- JDK-8157000:功能请求
- JDK-8187386:跟踪添加到 javadoc
目的是在实现或覆盖方法时减少噪音,但文档保持不变。
模式
detail
模式(默认)
当您使用 javadoc
而不指定 override-methods
时,detail
模式是默认模式。
它的行为与之前生成文档的方式相同:
- 如果一个方法没有被覆盖,它将在 "Methods inherited from" 部分。
- 如果一个方法被覆盖,它将被记录在 "Method Detail" 下,无论其签名或文档是否也被更改。
summary
模式
- 如果一个方法被覆盖并且它的文档被更改,它将被记录在"Method Detail". 下
- 否则会列在"Methods declared in"下。
summary
模式现在用于生成 JDK 文档 (JDK-8189706)。
请注意,此模式当前存在错误,因为它忽略了对应该记录在案的方法签名的一些更改,请参阅 JDK-8223607。
结论
您将看到 "Methods inherited from" 或 "Methods declared in" 部分。
当比较两个文档(一个 "inherited from",另一个 "declared in")相同的 class 时,"inherited from" 的文档可能会在 "Method Detail" 下列出更多方法,而对于 "declared in" 部分,一些方法改为在 "declared in" 部分。
所以是的,它们之间是有区别的。
例子
可以看到行为上的差异,例如 java.time.temporal.ChronoUnit
class: