【发布时间】:2012-11-12 13:41:03
【问题描述】:
我对@987654321@.values() 方法有一个非常具体的问题。
我想覆盖它的 javadoc。非常准确地说,当前的 javadoc 是在我创建自己的枚举之后:
public static MyClass.MyEnum[] values()
...
This method may be used to iterate over the constants as follows:
for (MyClass.MyEnum c : MyClass.MyEnum.values())
System.out.println(c);
Returns:
...
但在我的公司System.out 调用被认为是不好的做法,所以我不希望它显示。我的第一次尝试是覆盖values(),但这显然是不可能的。还有其他方法可以做到这一点吗?还是唯一可能更新生成的文档?
我也很好奇为什么values() 是不可覆盖的。我读到on other questions 说“它是由编译器生成的”。但是有人可以更精确吗?似乎是从枚举的名称生成的,但没有解释原因。
【问题讨论】:
-
如果您阅读了有关另一个问题的内容,最好链接到该问题。也许这个问题也需要澄清,或者发现您的问题的其他人也可能对另一个问题感兴趣。
-
@JoachimSauer 感谢您的报告,我更新了相关问题,说它是由编译器生成的。另一篇文章只是说你不能覆盖 valueOf()/values():stackoverflow.com/questions/9662170/…
-
还是不明白你的问题。为什么要覆盖 values() ?
-
我想覆盖 values() javadoc。我想为了覆盖javadoc,我需要覆盖方法,或者至少是它的声明。但也许我错了,请更新问题或告诉我在这种情况下如何更新。
-
@Vince:我个人认为最好的选择(短期和中期)是对生成的 Javadoc 进行后处理,以在代码示例中包含您想要的内容。
标签: java enums overriding javadoc