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

Почему Eclipse не обрабатывает значение @value при использовании в другом классе?

Я хочу, чтобы строка из A_CONSTANT была частью комментариев ClassB:

package my.stuff;

public class ClassA {
    /** Shows the string just fine: {@value} */
    public static final String A_CONSTANT = "show this in comments";
}

package my.stuff;

/**
 * Does not give me the string: {@value my.stuff.ClassA#A_CONSTANT}
 * Neither does this: {@value ClassA#A_CONSTANT}
 * 
 * @see my.stuff.ClassA#A_CONSTANT
 */
public class ClassB {

}

{@value} в ClassA показывает мне содержимое строки при наведении указателя на имя константы; это хорошо.

Также тег @see выполняет свою работу в ClassB, связываясь с A_CONSTANT.

Однако две попытки {@value ...} в ClassB не выполняются: я вижу буквальную {@value ...} часть, а не содержимое A_CONSTANT при наведении курсора на ClassB.

документация говорит мне использовать следующие обозначения, которые, я думаю, я сделал: {@value package.class#field}.

Ответ на этот вопрос также рекомендует использовать приведенные выше обозначения.

Это в основном тот же вопрос, что и мой, но на него не ответил.

Как я могу показать содержимое строки константы в комментариях другого класса?

Я использую Eclipse Juno для Windows 7 x86.

Спасибо заранее.

Edit:

При запуске javadoc.exe в моем проекте {@value my.stuff.ClassA#A_CONSTANT} разрешается правильная строка.

Вот почему я немного изменил вопрос:

Почему Eclipse не показывает постоянную строку при наведении курсора, в то время как у javadoc.exe нет проблем с ней?

Mouse over in Eclipse: Constant's string is not shown

4b9b3361

Ответ 1

Это будет ошибкой в ​​Eclipse. Немного измените пример документы:

public class TestClass {
  /**
   * The value of this constant is {@value}.
   */
  // In Eclipse this shows: The value of this constant is "<script>".
  public static final String SCRIPT_START = "<script>";
  /**
   * Evaluates the script starting with {@value TestClass#SCRIPT_START}.
   */
  // In Eclipse this shows: Evaluates the script starting with {@value TestClass#SCRIPT_START}.
  public void test1() {
  /**
   * Evaluates the script starting with {@value #SCRIPT_START}.
   */
  // In Eclipse this shows: Evaluates the script starting with "<script>".
  public void test2() {
  }
}

A bug была создана с помощью eclipse для этого.

Ответ 2

На странице ссылок javadoc, которую вы связали с здесь, в разделе "Где можно использовать теги" он ссылается на то, что значение @value можно использовать на поле, но не на класс. В классе B javadoc находится в классе, что является недопустимым. Возможно, что затмение строго следует этой оценке, а javadoc.exe более мягко относится к размещению.