覆盖java.lang.Enum.values()上的Javadoc注释

Vin*_*nce 7 java enums overriding javadoc

关于方法java.lang.Enum .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:
    ...
Run Code Online (Sandbox Code Playgroud)

但在我的公司System.out电话被认为是不好的做法,所以我希望它不被显示.我的第一次尝试是覆盖,values()但显然不可能.还有其他方法可以做到这一点吗?或者是更新生成的doc的唯一可能性?

我也很好奇为什么values()不能覆盖.我读过其他问题 "它是由编译器生成的".但有人可以更精确吗?它似乎是从enum的名字生成的,但它没有解释原因.

Mar*_*nik 12

values是一种静态方法,不受覆盖.您无法提供自己的方法来替换生成的方法,这是通过规范.

没有标准的机制来替换你无法控制源代码的方法的Javadoc,但你可能会使用构建工具,或者,如果所有其他方法都失败,那么最终的Javadoc HTML.