【发布时间】:2021-08-02 12:18:52
【问题描述】:
假设我有:
public enum Color {
RED,
GREEN,
YELLOW
}
然后在我的代码中的其他地方
public static final Color DEFAULT_COLOR = Color.RED;
现在我想向我的 Javadoc 的读者记录DEFAULT_COLOR 的价值是什么(当然,我不再重复自己)。该怎么做?
问题在于——正如我所见——这样的引用(尽管声明为static final 并指向一个枚举)将不会显示在Javadoc 的“constant-values.html”中。我看不出它不应该的技术原因,但据我所知,它不应该。也许我只是误解了?
细化
确切地说,问题是关于 Enum 变量的 static final 声明,其中右侧是 JLS 定义的单个标识符,因此不包括 RHS 是更复杂表达式的情况。这类似于当前用于原始类型分配的 Javadoc 行为,如果 RHS 不是所谓的“常量表达式”,Javadoc 将不会尝试呈现。我们当然可以期待 Javadoc 做同样的事情,我可以毫无疑问地渲染这个吗?枚举分析,不是吗?通过说 RHS 必须是单个标识符,我们将自己限制在 IMO 应该可以明确地为 Javadoc 呈现的东西。
【问题讨论】:
-
这里是技术原因 - 与
1、"hello"或0.5f不同,Color.RED不是编译时间常数。 -
真的吗?也许不是 Java 规范中正式的编译时常量,但出于所有实际目的,Enum 确实是编译时常量,不是吗?我不明白为什么 Javadoc 不能“解决”它。