У меня возникли проблемы с получением тегов «@link» и «@see» для работы с конструкторами внутренних/вложенных классов и надеюсь, что кто-то здесь может помочь. Этот короткий примерный класс предоставляет предупреждения javadoc в строке 25, ссылающиеся на теги «@link» и (эквивалентные) «@see» в предыдущих строках документации «Layer()».Каков правильный тег javadoc «@link» или «@see» для внутренних/вложенных конструкторов классов?
package bogus;
import javax.swing.JPanel;
public class LayeredPlot extends JPanel {
/**
* Constructor for the plot.
*/
public LayeredPlot() {
}
public static class Layer {
private String name;
/**
* Construct a default layer with a default name. This method calls
* {@link LayeredPlot.Layer#Layer(String)} OR calls == JAVADOC WARNING
* {@link #Layer(String)} OR calls == JAVADOC WARNING
* {@link Layer#Layer(String)} == JAVADOC WARNING
* with a null name to perform the construction.
* The constructor for the layer can be found
* {@link LayeredPlot#LayeredPlot() here}. == JAVADOC Okay!
*
* @see LayeredPlot.Layer#Layer(String) == JAVADOC WARNING
* @see #Layer(String) == JAVADOC WARNING
* @see Layer#Layer(String) == JAVADOC WARNING
* @see LayeredPlot#LayeredPlot() == JAVADOC Okay!
*/
public Layer() { // Line 25: javadoc warnings reference this line
this(null);
}
/**
* Construct a layer with the specified name.
*
* @param name The desired name for the layer within the plot.
*/
public Layer(String name) {
this.name = name;
}
}
}
Предупреждений (3 для "@see", 3 для "@link") все говорят: can't find Layer(String) in bogus.LayeredPlot.Layer
.
ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: Все остальные javadocs работают как ожидалось (включая методы внутреннего класса и мои ссылки в этом примере на конструктор самого LayeredPlot).
Любые предложения для правильных тегов javadoc для внутренних/вложенных конструкторов классов были бы весьма полезны.
Спасибо.
У меня нет ответа, но мне было просто интересно: комментарии Дока, как правило, предназначены для документирования API, то есть сказать клиентам, как использовать модуль. Итак, почему вы так много документируете реализацию? Это класс, предназначенный для наследования? – scottb
Комментарии здесь, например, только. Важная вещь (для меня) заключается в том, что и внешний, и внутренний классы являются публичными и, следовательно, достойны комментариев. – skuzmo
Просто терминология, но я бы сказал, что у вас нет внутреннего класса. Ваш вложенный класс является статическим классом-членом и отличается от внутреннего класса * без зависимости от любого экземпляра охватывающего класса. Практически все, что имеет значение, статический класс-член ведет себя точно так же, как класс верхнего уровня. – scottb