2016-11-22 13 views
2

У меня возникли проблемы с получением тегов «@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 для внутренних/вложенных конструкторов классов были бы весьма полезны.
Спасибо.

+0

У меня нет ответа, но мне было просто интересно: комментарии Дока, как правило, предназначены для документирования API, то есть сказать клиентам, как использовать модуль. Итак, почему вы так много документируете реализацию? Это класс, предназначенный для наследования? – scottb

+0

Комментарии здесь, например, только. Важная вещь (для меня) заключается в том, что и внешний, и внутренний классы являются публичными и, следовательно, достойны комментариев. – skuzmo

+0

Просто терминология, но я бы сказал, что у вас нет внутреннего класса. Ваш вложенный класс является статическим классом-членом и отличается от внутреннего класса * без зависимости от любого экземпляра охватывающего класса. Практически все, что имеет значение, статический класс-член ведет себя точно так же, как класс верхнего уровня. – scottb

ответ

0

Если вы используете внутреннее имя, вам необходимо полностью охватить его по обе стороны от # маркера. Например .:

@see LayeredPlot.Layer#LayeredPlot.Layer(String) 
+1

Это также не удается –

+1

Чтобы уточнить, в какой версии вы работаете? Я получаю сообщение об ошибке: неожиданный текст. –

 Смежные вопросы

  • Нет связанных вопросов^_^