为什么Javadoc中没有记录一些可能存在的字段?

igetnqfo  于 2023-03-28  发布在  Java
关注(0)|答案(2)|浏览(104)

当我想知道如何使用某个类时,我会查看它的Javadoc。例如,考虑LocalTime。我只看到该类的静态字段的文档,MAX等等。我没有看到我期望它具有的字段,例如secondnano,基于像int getSecond()int getNano()这样的方法。为什么这些字段没有文档化?为什么我只能通过阅读源代码来了解它们?

yizd12fk

yizd12fk1#

但是,你实际上并不知道它是否有一个secondnano字段。仅仅因为它有像int getMinute()这样的方法并不意味着有一个int minute字段。封装的一部分是,你通过它们的 public API(这 * 是 * 文档化的)而不是通过实现细节与类交互。
我可以像这样实现int getMinute()方法:

class LocalTime {
  private int negativeMinutes;

  // ...

  public int getMinutes() {
    return -1 * negativeMinutes;
  }
}

或通过

class LocalTime {
  private String minutes;

  // ...

  public int getMinutes() {
    return Integer.valueOf(minutes);
  }
}

它们可能都是一致的实现。它们不会是很好的实现,但它们会有相同的 public API。公共文档的重点是你不需要知道实现的细节。
现在,如果你正在为自己的代码生成Javadoc,你实际上可以指示Javadoc为可见性级别较低的字段生成文档,比如private字段和方法。但是,这些对大多数用户来说并不是那么有用,因为他们可能无法 * 调用 * 这些方法或 * 访问 * 这些字段,除非他们使用一些反射方法。
至于LocalTime的源代码,有开源的Java实现,您可以在那里查看源代码。

gwbalxhn

gwbalxhn2#

Java文档是记录公共字段和方法。由于这些字段是private,因此没有记录。由于用户无法访问private字段或方法,因此它们通常不包含在Java文档中。
这些字段有getter方法,你可以在java文档中找到。Java文档是为了帮助用户找到他们用例的公共方法/字段。因此,你在java文档中找不到nanosecond

相关问题