在Java API中,它声明公共(public)StringBuilder类扩展了Object,但实际上,OpenJDK声明它扩展了一个包私有(private)AbstractStringBuilder类。问题:为什么 Java API 不能直接声明它扩展了 AbstractStringBuilder?
OpenJDK - 公共(public)最终类 StringBuffer 扩展 AbstractStringBuilder 实现 java.io.Serialized、CharSequence
最佳答案
它是 javadoc
命令中使用的配置设置。您可以指定要在生成的 javadoc 中包含哪些类。默认设置为 -protected
,它将包括 public
和 protected
类,但不包括包中的类或 private
> 的。假设您有以下类层次结构:
public class TopParentName {}
(package) class MiddleName extends TopParentName {}
public class LeafName extends MiddleName {}
当您运行不带 -package
标志的 javadoc
命令时,您将仅看到类 TopParentName
和 LeafName
> 并且您将看到 LeafName
将从 TopParentName
扩展,即使在源代码中并非如此。但是当您使用 -package
标志时,您将看到所有三个类都具有正确的继承链。
话虽这么说,官方 javadoc 很可能不是使用 -package
或 -private
标志生成的,因此类 AbstractStringBuilder
类在生成的 javadoc 中不可见。
关于java - 为什么 Java API 没有记录 AbstractStringBuilder 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55870415/