Подтвердить что ты не робот

Базовый параметр Javadoc от другого метода

Я не хочу писать избыточные комментарии javadoc. Как вы можете видеть, @param x в избытке. Есть ли разметка javadoc для задания ссылки из @param x в классе B на @param x в классе A или мне разрешено просто оставить ее?

/**
 * Class A constructor
 * 
 * @param x  position on x-axis
 */
public A(final int x) {
    this.x = x;
}

/**
 * Class B constructor
 * 
 * @param x  position on x-axis
 * @param y  position on y-axis
 */
public B(final int x, final int y) {
    super(x);
    this.y = y
}
4b9b3361

Ответ 1

Вы не можете его оставить, javadoc не является умным, он просто анализирует комментарии, он не может сказать, что параметр x для конструктора B такой же, как конструктор A, даже если является наследованием в игре.

Я не думаю, что есть способ "разложить факторизацию". Вам просто нужно написать все, извините...

Ответ 2

С помощью методов он должен работать: если вы перезаписываете или реализуете метод, параметры копируются, если не указаны.

Конструкторы не наследуются, а тем более - конструктору с другими типами параметров. Javadoc не знает, что вы передаете параметр другому конструктору, поскольку он не интерпретирует содержимое методов/конструкторов, а только внешний интерфейс.

Итак, я полагаю, вам не повезло, если вы не хотите писать свой собственный документ или менять стандартный документ (и даже тогда вам придется как-то сказать, какой конструктор наследует параметры из). (Это было бы полезным дополнением, также для нескольких аналогичных методов в одном классе, я думаю.)

Ответ 3

Если вы переопределяете родительский метод, если вы не включите javadoc, большинство IDE покажут javadoc для родительского метода. В противном случае нет способа определить/ссылаться на переменные в синтаксисе javadoc.