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

问题描述 投票:0回答:2

当我想知道如何使用某个类时,我会查看它的Javadoc。例如,考虑LocalTime。我只看到该类的静态字段的文档,

MAX
,等等。我没有看到我期望它具有的字段,例如
second
nano
,基于像
int getSecond()
int getNano()
这样的方法。为什么没有记录这些字段?为什么我只能通过阅读源码才能了解它们?

java javadoc java-time
2个回答
2
投票

不过,您实际上并不知道它是否具有

second
nano
字段。仅仅因为它有像
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

 字段和方法。但是,这些对大多数用户来说并不是那么有用,因为他们可能无法 
call 那些方法或 access 那些字段,除非他们使用一些反射方法。

LocalTime的源码,有开源的Java实现,你可以去那里看源码


0
投票
Java doc 用于记录公共字段和方法。由于这些字段是

private

,因此没有记录。由于用户无法访问 
private
 字段或方法,因此它们通常不包含在 java 文档中。

这些字段有getter方法,你可以找到java文档。 Java 文档旨在帮助用户找到其用例的公共方法/字段。因此,您在 java 文档中找不到

nano

second

© www.soinside.com 2019 - 2024. All rights reserved.