Переопределенный метод Документации Java не делает InheritDoc

Одно из следующего:

find *.txt -exec awk 'END {print [110] "," FILENAME}' {} \;

find *.txt -exec sh -c 'echo "$(tail -n 1 "$1"),$1"' _ {} \;

find *.txt -exec sh -c 'echo "$(sed -n "\$p" "$1"),$1"' _ {} \;
16
задан Janusz 4 July 2009 в 03:50
поделиться

2 ответа

Согласно документации javadoc :

Наследование комментариев происходит во всех три возможных случая наследования из классов и интерфейсов:

  • Когда метод в классе переопределяет метод в суперклассе
  • Когда метод в интерфейсе переопределяет метод в суперинтерфейсе
  • Когда метод в классе реализует метод в интерфейсе

Комментарии могут быть явно наследованы с помощью тега {@ inheritDoc} . Если для метода переопределения не предоставлены комментарии, они будут неявно унаследованы. Аспекты наследующих комментариев (например, параметры, возвращаемое значение и т. Д.) Могут быть переопределены, если вы того пожелаете.

Важно отметить, что вы должны убедиться, что исходный файл, содержащий код с наследуемым комментарием, доступен для инструмент javadoc. Вы можете сделать это, используя параметр - исходный путь .

24
ответ дан 30 November 2019 в 21:29
поделиться

Из руководства Javadoc 1.4.2

Алгоритм наследования комментариев метода - Если метод не имеет комментария документа или имеет тег {@inheritDoc} , инструмент Javadoc ищет подходящий комментарий, используя следующий алгоритм, который разработан для поиска наиболее конкретного применимого комментария документа, отдавая предпочтение интерфейсам над суперклассами:

  1. Просматривайте каждый непосредственно реализованный (или расширенный) интерфейс в том порядке, в котором они появляются после слова реализует (или расширяет) в объявлении метода. Используйте первый комментарий документа, найденный для этого метода.
  2. Если на шаге 1 не удалось найти комментарий документа, рекурсивно примените весь этот алгоритм к каждому напрямую реализованному (или расширенному) интерфейсу в том же порядке, в котором они были проверены на шаге 1. 1. Если в суперклассе есть комментарий к этому методу, используйте его. 2. Если на шаге 3a не удалось найти комментарий документа, рекурсивно примените весь этот алгоритм к суперклассу.

Я считаю (хотя могу ошибаться), что этот базовый алгоритм по-прежнему применим к Java 1.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...

Создает файл: /// C: / Java / home / src / forum / 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
5
ответ дан 30 November 2019 в 21:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: