为什么 AbstractStringBuilder 类没有被 Java API 记录


在Java API中,它声明公共StringBuilder类扩展了

Object,但实际上OpenJDK声明它扩展了一个包私有的AbstractStringBuilder类。 问:为什么Java API不能声明它扩展了AbstractStringBuilder?

OpenJDK -公共最终类 StringBuffer 扩展 AbstractStringBuilder 实现java.io.Serializable, CharSequence

它是 javadoc 命令中使用的配置设置。您可以指定要包含在生成的 javadoc 中的类。默认设置是 -protected ,它将包括public类和protected类,但不包括包中的类或private类。假设您具有以下类层次结构:

public class TopParentName {}
(package) class MiddleName extends TopParentName {}
public class LeafName extends MiddleName {}

当你运行没有-package标志的javadoc命令时,你只会看到类TopParentNameLeafName,你会看到LeafName将从TopParentName扩展,即使在源代码中它没有。但是,当您使用 -package 标志时,您将看到具有正确继承链的所有三个类。

话虽如此,官方的javadoc很可能不是使用-package-private标志生成的,因此类AbstractStringBuilder类在生成的javadocs中不可见。

最新更新