Java文档重写方法不继承文档

Java文档重写方法不继承文档,java,eclipse,documentation,inheritdoc,Java,Eclipse,Documentation,Inheritdoc,重写另一个方法的方法不会继承它所重写的方法的文档。有没有办法明确地告诉它继承文档 /** * {@inheritDoc} * * This implementation uses a dynamic programming approach. */ @Override public int[] a(int b) { return null; } 根据报告: 注释的继承发生在所有 三种可能的继承情况 从类和接口: 类中的方法重写超类中的方法时 当接口中的方法重写超级接

重写另一个方法的方法不会继承它所重写的方法的文档。有没有办法明确地告诉它继承文档

/**
  * {@inheritDoc}
  * 
  * This implementation uses a dynamic programming approach.
  */
@Override
public int[] a(int b) {
    return null;
}
根据报告:

注释的继承发生在所有 三种可能的继承情况 从类和接口:

  • 类中的方法重写超类中的方法时
  • 当接口中的方法重写超级接口中的方法时
  • 类中的方法在接口中实现方法时
可以使用标记显式继承注释。如果没有为重写方法提供注释,则注释将被隐式继承。如果您愿意,可以覆盖继承注释的各个方面(例如参数、返回值等)

重要的是,您需要确保包含要继承注释的代码的源文件可供javadoc工具使用。您可以使用-选项执行此操作。

来自

继承方法注释的算法-如果一个方法没有文档注释,或者有{@inheritDoc}标记,Javadoc工具将使用以下算法搜索适用注释,该算法旨在查找最具体的适用文档注释,优先考虑接口而不是超类:

  • 按照方法声明中implements(或extends)一词后面的顺序查看每个直接实现(或扩展)接口。使用为此方法找到的第一个文档注释
  • 如果步骤1未能找到文档注释,则将整个算法递归地应用于每个直接实现(或扩展)的接口,顺序与步骤1中检查的顺序相同
  • 如果步骤2找不到文档注释,并且这是对象以外的类(不是接口): 1.如果超类对此方法有文档注释,请使用它。 2.如果步骤3a未能找到文档注释,则递归地将整个算法应用于超类
  • 我相信(尽管我可能错了)这个基本算法仍然适用于Java1.5和1.6。。。尽管Sun能为每个版本的工具集发布一个完整的、自包含的最终文档真是太好了。。。我想这是他们负担不起的开销,至少是一个免费的工具集

    干杯。基思


    编辑:

    这里有一个简单的例子

    代码

    package forums;
    
    
    interface Methodical
    {
      /**
       * A no-op. Returns null.
       * @param i int has no effect.
       * @return int[] null.
       */
      public int[] function(int i);
    }
    
    
    interface Methodological extends Methodical
    {
      /**
       * Another no-op. Does nothing.
       */
      public void procedure();
    }
    
    
    class Parent implements Methodological
    {
      @Override
      public int[] function(int i) {
        return null;
      }
    
      @Override
      public void procedure() {
        // do nothing
      }
    
    }
    
    
    class Child extends Parent
    {
      /** {@inheritDoc} */
      @Override
      public int[] function(int i) {
          return new int[0];
      }
    
      /** {@inheritDoc} */
      @Override
      public void procedure() {
        System.out.println("I'm a No-op!");
      }
    
    }
    
    
    public class JavaDocTest
    {
      public static void main(String[] args) {
        try {
          new Child().procedure();
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    }
    
    Javadoc

    C:\Java\home\src\forums>javadoc -package -sourcepath . JavaDocTest.java
    Loading source file JavaDocTest.java...
    Constructing Javadoc information...
    Standard Doclet version 1.6.0_12
    Building tree for all the packages and classes...
    Generating forums/\Child.html...
    Generating forums/\JavaDocTest.html...
    Generating forums/\Methodical.html...
    Generating forums/\Methodological.html...
    Generating forums/\Parent.html...
    Generating forums/\package-frame.html...
    Generating forums/\package-summary.html...
    Generating forums/\package-tree.html...
    Generating constant-values.html...
    Building index for all the packages and classes...
    Generating overview-tree.html...
    Generating index-all.html...
    Generating deprecated-list.html...
    Building index for all classes...
    Generating allclasses-frame.html...
    Generating allclasses-noframe.html...
    Generating index.html...
    Generating help-doc.html...
    Generating stylesheet.css...
    
    产生file:///C:/Java/home/src/forums/index.html

    function
    
    public int[] function(int i)
    
        A no-op. Returns null.
    
        Specified by:
            function in interface Methodical
        Overrides:
            function in class Parent
    
        Parameters:
            i - int has no effect. 
        Returns:
            int[] null.
    
    procedure
    
    public void procedure()
    
        Another no-op. Does nothing.
    
        Specified by:
            procedure in interface Methodological
        Overrides:
            procedure in class Parent
    

    用javaDoc交换@Override

    @覆盖
    /**
    *{@inheritardoc}
    */
    
    我在文章中引用的javadoc文档是针对J2SE 1.6发行版的。这没有任何效果。